Как создать авторизацию на одном сайте по базе данных пользователей с другого сайта?

Я создал новостной ресурс (xxx.ru), на котором для комментирования нужно либо зарегистрироваться, либо авторизоваться через любую соц. сеть (используется uLogin).

Ещё у меня имеется популярный интернет-форум с 40k+ пользователей, которые тоже читают и этот новостной ресурс. Форум на IP.Board, домен отдельный от новостного ресурса (yyy.ru).

Хотелось бы на новостном сайте сделать следующее:
ЛИБО сразу делать авторизованными тех, кто уже авторизован на форуме, попутно внося в БД нового пользователя с форума на новостной сайт;
ЛИБО дать возможность авторизоваться пользователям через мой форум (т.е. написать мини-авторизацию, как у uLogin).

Как это лучше организовать?

С OpenID я пока не знаком и плохо себе представляю, что именно мне нужно написать на форуме и на новостном ресурсе, чтобы это связать. Подскажите, в каком направлении копать. :-)
  • Вопрос задан
  • 3179 просмотров
Пригласить эксперта
Ответы на вопрос 2
akubintsev
@akubintsev
Опытный backend разработчик
Не получится просто сделать так, чтобы авторизованные пользователи форума могли быть автоматически авторизованы на другом домене. Если бы это было семейство поддоменов - тогда без проблем. Дело в политике безопасности сессионной куки.
В любом случае, если хотите привязываться к учёткам форума, то потребуется реализовать простейший API для авторизации и настроить кросс-доменный ajax, чтобы слать запросы прямо из клиентского javascript-а.
Алгоритм приходит в голову следующий:
- при заходе на сайт проверяется наличие сессионной куки
- если она есть, то посылается запрос на форумный API, чтобы проверить наличие связи id в куке с данными пользователя
- если связи нет или кука отсутствовала - пользователю показывается, что он разлогинен
- если связь есть - по API отсылаются нужные данные для показа на сайте.

Для авторизации в API передается логин-пароль, возвращается id той же сессионной куки, что используется на форуме.
Ответ написан
jakulov
@jakulov
думаю, можно к форуму прикрутить скирптик, реализующий oAuth и там уже по аналогии с авторизацией через соцсети будет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы