shambler
Новичок
Авторизация пользователя на нескольких доменах одновременно - как реализовать?
Возникла такая проблема - есть 2 разных сайта (на разных доменах), которые работают на одном движке с общей базой и пр. Необходимо чтоб пользователь, который авторизировался на одном из сайтов, при переходе на другой также оказывался авторизированным.
В процессе разработки все выглядело так:
1. Домены site1.domain.com, site2.domain.com.
2. На сайте site1.domain.com была ссылка типа site2.domain.com?PHPSESSID=... , в которой передавался ид сессии.
3. Пользователь, переходивший по этой ссылке, юзал одну и ту же сессию (типа - куки нет, пхп хватает get и стартует ту же сессию)
Все работало на ура. Но после переноса сайтов на разные домены все сломалось ( Теперь схема выглядит так:
1. Домены domain1.com, domain2.com.
2. ссылка осталась
3. Авторизированный пользователь переходит на другой сайт и остается авторизированным (!), но только на первой странице!!! При переходе на любую другую страницу сайта ид сессии изменяется. Почему?
Доп. Информация:
1. Пользователь с сайта domain1.com переходит на domain2.com. При этом: а) на первой странице он юзает ту же сессию, что и на первом сайте б) выставляется кука с ид сессии в) PHPSESSID не добавляется к ссылкам.
2. На сервере разработки и реальном сервере разные настройки пхп:
а) разработка (там, где механизм работал) - session.use_trans_sid = off; session.bug_compat_42 = off;
б) реальный (там где он не работает) session.use_trans_sid = on; session.bug_compat_42 = on;
При необходимости могу написать все остальные настройки.
Вопросы такие - почему при разработке работало, а сейчас - нет? Что сделать, чтоб механизм заработал?
Возникла такая проблема - есть 2 разных сайта (на разных доменах), которые работают на одном движке с общей базой и пр. Необходимо чтоб пользователь, который авторизировался на одном из сайтов, при переходе на другой также оказывался авторизированным.
В процессе разработки все выглядело так:
1. Домены site1.domain.com, site2.domain.com.
2. На сайте site1.domain.com была ссылка типа site2.domain.com?PHPSESSID=... , в которой передавался ид сессии.
3. Пользователь, переходивший по этой ссылке, юзал одну и ту же сессию (типа - куки нет, пхп хватает get и стартует ту же сессию)
Все работало на ура. Но после переноса сайтов на разные домены все сломалось ( Теперь схема выглядит так:
1. Домены domain1.com, domain2.com.
2. ссылка осталась
3. Авторизированный пользователь переходит на другой сайт и остается авторизированным (!), но только на первой странице!!! При переходе на любую другую страницу сайта ид сессии изменяется. Почему?
Доп. Информация:
1. Пользователь с сайта domain1.com переходит на domain2.com. При этом: а) на первой странице он юзает ту же сессию, что и на первом сайте б) выставляется кука с ид сессии в) PHPSESSID не добавляется к ссылкам.
2. На сервере разработки и реальном сервере разные настройки пхп:
а) разработка (там, где механизм работал) - session.use_trans_sid = off; session.bug_compat_42 = off;
б) реальный (там где он не работает) session.use_trans_sid = on; session.bug_compat_42 = on;
При необходимости могу написать все остальные настройки.
Вопросы такие - почему при разработке работало, а сейчас - нет? Что сделать, чтоб механизм заработал?