Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

кроссдоменная авторизация

32K
03 августа 2010 года
Neonion
8 / / 23.01.2008
В общем проблема эта уже здесь поднималась, но мне сказали что надо бы новую тему создавать)

В общем есть у меня два сайта, которые лежат на одном сервере и используют одну базу данных. При этом они имеют разные домены - один домен первого уровня а второй субдомен другого домена первого уровня.
Пытаюсь сделать чтобы пользователь при логине на одном из сайтов имел логин на другом сайте.. Пока этих сайтов 2, но потом их будет больше...

Из того что я прочитал, понял что надо каким-то образом перепрописать куки с одного домена на другой, хотя может и нет.. В общем в голове полная каша.
Как это сделать?

Забыл добавить что сайты все на одном движке - Social Engine и OpenId не подходит.
13
03 августа 2010 года
RussianSpy
3.0K / / 04.07.2006
Только через GET запрос. Параметры куков передавать в ифрейме.
253
03 августа 2010 года
Proger_XP
1.5K / / 07.08.2004
Такая тема тут уже поднималась пару раз, там много писали, поищи.

В двух словах - сделай общую БД для обоих сайтов, где будешь хранить данные авторизованных юзеров (ticket'ы, например). При логине на одном из сайтов можешь попробовать поставить куки не только для того сайта, где вошли, а и для другого с помощью $domain: setcookie('ticket', '...', 0, '/', '.other.site.ru');

Если с куки не прокатит, можешь просто делать запись в БД об IP клиента и другой его инфе (чем больше, тем лучше), а при входе на другом домене проверять, совпадает ли инфа о клиенте с этого IP с инфой о том же IP в базе. Если да - юзер вошёл.
287
03 августа 2010 года
Shiizoo
958 / / 14.03.2004
Сам не знаю, можно ли куки ставить на домен отличный от того, на котором сидишь, но выглядит это как дырка для затирания кук других сайтов. Чисто зловредительская. =)

Собственно, RussianSpy идеальный вариант предложил. Нужно на втором сайте страничку для подцепления кук из get-запроса сделать и вызывать ее с первого сайта во время авторизации на нем с помошью Iframe/AJAX.
32K
03 августа 2010 года
Neonion
8 / / 23.01.2008
да, видел что темы поднимались, перечитал очень много. Но в основном то речь шла о том чтобы сделать данную вещь на одном домене(который имеет субдомены). А тут ведь совершенно разные домены.
Так что такая штука, как $domain: setcookie('ticket', '...', 0, '/', '.other.site.ru'); вряд ли прокатит, хотя надо попробовать:) А что имеется в данном случае под $domain? Сюда надо занести значение текущего домена, с которого я хочу передать куки .other.site.ru?

А вообще, я ж говорю что у этих сайтов и так уже одна БД. И в бд есть таблица, в которой храняться данные об авторизации, например ключ сессии.

Цитата:
Только через GET запрос. Параметры куков передавать в ифрейме.


так а что куда передавать? можно поподробней?)

32K
03 августа 2010 года
Neonion
8 / / 23.01.2008
Цитата: Shiizoo
Сам не знаю, можно ли куки ставить на домен отличный от того, на котором сидишь, но выглядит это как дырка для затирания кук других сайтов. Чисто зловредительская. =)



ну да...дырки не нужны) тут пользователей >65000 )

287
03 августа 2010 года
Shiizoo
958 / / 14.03.2004
Цитата: Neonion
ну да...дырки не нужны) тут пользователей >65000 )



Я просто о том, что это, скорее всего, невозможно. Что хорошо. =) Перечитайте выше, я немного детализировал предложение RussianSpy.

32K
03 августа 2010 года
Neonion
8 / / 23.01.2008
т.е. если я правильно понимаю, то я должен сделать следующим образом всё:

Сделать скрытый iFrame на сайте№2, который будет подключать в себя какой-нибудь coockies.js или coockies.php, который находится на сайте№1. При этом в этом скрипте вытягиваются куки и посылаются get-запросом на сайт№2, где я с ними что-то делаю..так?
сори, если чего не так понимаю, работы много))
287
03 августа 2010 года
Shiizoo
958 / / 14.03.2004
когда выполняется авторизация на domain1/auth в страничке авторизации прозрачно выполняется get запрос iframe/ajax к domain2/special_page с нужными куками для domain1 помещенными в этот запрос. special_page - некий скрипт (динамическая страница), который берет GET параметры и создает из них куки.

Никаких изменений на втором сайте, кроме добавления этого скрипта не делается. А в первом сайте в страничку успешной авторизации добавляется JavaScript код, выполняющий get-запрос со вставленными на основе необходимых кук параметрами.
32K
03 августа 2010 года
Neonion
8 / / 23.01.2008
ага, теперь картина уже более ясна:) спасибо)
в общем буду сегодня пробовать)
13
03 августа 2010 года
RussianSpy
3.0K / / 04.07.2006
Все верно. Shiizoo абсолютно правильно развил мою мысль. Спасибо.
253
03 августа 2010 года
Proger_XP
1.5K / / 07.08.2004
Интересный метод с iframe/ajax, спасибо. Не знал.

Попробовал setcookie() с другим доменом - действительно не работает. Чего и следовало ожидать :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог