@magary4

Как сделать авторизацию сразу на 2х сайтах?

Есть два независимых сайта ( А и Б )
нужно сделать так, чтоб если юзер открывает сайт Б и при этом он залогинен на сайте А то мы авторизуем его автоматически
у сайта А есть API чтоб спросить залогинен ли юзер, и это API можно расширить в соответствии с нуждами
в голове 2 мысли

1. когда юзер открывает сайт А генерим хеш из каких-то браузерных данных типа user-agent, os etc
когда открываем сайт Б генерим снова хеш и делаем ajax на сайт А проб проверить залогинен ли юзер с таким хешем

2. когда юзер логинется на сайте А открываем невидимый iframe href="siteB/login_me?email=" сайт Б обрабатывает этот запрос, проверят что запрос именно с определенного домена и логинет юзера, в дальнейшем когда юзер откроет сайт Б - браузер передаст куку полученую через iframe ранее

или как можно решить это дело?
  • Вопрос задан
  • 157 просмотров
Пригласить эксперта
Ответы на вопрос 3
vmpartner
@vmpartner
In code we trust
Можно просто вставить картинку 1px на сайт А с сайта Б, и прокинуть куки.
Ответ написан
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
Если сайты на одном домене, то делать SSO.

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

1. Не надо никакие браузерные данные использовать, это ваша внутренняя кухня, вот и разбирайтесь на бекенде с этим. Не говоря уже про безопасность таких способов.
2. И точно не вариант через iframe, по той же причине что и п1.
Ответ написан
Комментировать
Вы все правильно рассуждаете, могу сказать, как еще делают практически все крупные сайты. Если пользователь заходит на страницу, которой требуется авторизация, а информации о ней нет (нету cookie, например), то сначала идет редирект на некий авторизационный домен, а у него уже есть cookie, а он в свою очередь делает редирект обратно и в URL передает некий авторизационный токен для первого домена.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы