Как создать кросс-доменную сессию?

Суть проблемы: есть сайт aaa.com и bbb.ru, оба крутятся на Tomcat, и физически находятся на одном сервере, оба используют одну и ту же бд и один Redis, в котором хранятся сессии. Каким образом можно при логине на aaa.com и последующем переходе на bbb.ru использовать одну сессию на двух сайтах?
  • Вопрос задан
  • 2436 просмотров
Пригласить эксперта
Ответы на вопрос 4
@yanchumak
хранить сессии в бд (с)КО
Ответ написан
Комментировать
@gurinderu
java developer
Хранить сессию в БД или в распределенном кэше.
Ответ написан
@papkinv
можно посмотреть на CORS
Ответ написан
Комментировать
Guran
@Guran Автор вопроса
В итоге пришел к такому варианту:
Redis хранит сессию у себя, но отдает ее по куке, привязанной к браузеру, на JAVA она называется JSESSIONID, на PHP PHPSESSIONID. Если заменить в куках второго сайта ID на ID с первого, то фактически на двух доменах сессия будет указывать на один и тот же блок в Redis.

После этого на сайтах достаточно написать защищенную функцию для сменя куки, и в случае нужды отправлять ID с одного сайта на другой. Я это делаю через скрытый iframe.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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