Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Кроссдоменная авторизация


Автор: keenz 24.8.2011, 11:27
Добрый день. Данная тема уже поднималась http://forum.vingrad.ru/topic-309345.html, но ответа в ней нет.
Мне нужно, чтобы пользователь, залогинившись на s1.ru, смог гулять по s2.ru s3.ru и т.д. Все сайты на одной базе данных (таблица юзеров единая).
Как реализовать?

Смотрел vkontakte.ru и vk.com - если логинишься на одном, то авторизует и на другом, как это сделано?

Автор: keenz 25.8.2011, 10:02
Вопрос открыт.

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

Какие еще предложения?

Автор: 502 25.8.2011, 10:10
Цитата(keenz @  24.8.2011,  11:27 Найти цитируемый пост)
Смотрел vkontakte.ru и vk.com - если логинишься на одном, то авторизует и на другом, как это сделано?


гуглить алиас домена  smile 

Автор: keenz 25.8.2011, 11:51
контакт по https отсылает запрос к login.vkontakte.ru и выставляет куку.

Но как vk.com узнает, что именно я захожу на него, у него ведь этой куки не может быть?

Автор: 502 25.8.2011, 11:53
keenz, гуглил?

Автор: Absinthe 25.8.2011, 13:13
Я могу предложить способы с участием JS, интересует?

Автор: keenz 25.8.2011, 15:17
Absinthe да очень интересует

Добавлено через 1 минуту и 12 секунд
502,  не понял что гуглить. vk и vkontakte сидят на разных IP.
Мне интересно, как vk.com понимает. что я авторизован на vkontakte.ru

Автор: Absinthe 25.8.2011, 16:15
Через JS придумалось: авторизация происходит всегда по одному URL, который на всех сатах загружается через iframe/script/etc

Автор: MoLeX 26.8.2011, 07:52
Цитата(keenz @  24.8.2011,  11:27 Найти цитируемый пост)
Смотрел vkontakte.ru и vk.com - если логинишься на одном, то авторизует и на другом, как это сделано?

смотрели и не увидели что-ли?

1. авторизация проходит методом post на https://login.vk.com/?act=login
2. редирект с уникальной подписью на http://vkontakte.ru/login.php?act=slogin&al_frame=1&hash={подпись}&s=1

выводы сам сделаешь?

Автор: keenz 26.8.2011, 08:00
MoLeX,  т.е. получается он авторизует юзера и редиректится по 2-м доменам, оставляя там куки?

Автор: MoLeX 26.8.2011, 08:23
keenz,  smile 
причем редирект идет с подписью, которая вряд ли долго живет (максимум 5 секунд время её жизни надо делать)

Автор: keenz 26.8.2011, 08:42
MoLeX, есть ли какие способы без редиректа обойтись, потому что список сайтов, работающих на одной БД у меня растет. Сейчас их 3, дальше больше.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)