один и тот же сеанс, разные домены, установить идентификатор сеанса - PullRequest
3 голосов
/ 29 декабря 2011

У меня есть пара доменов, которые я хочу для сеансов. Я создал такой метод:

Вход пользователя в систему осуществляется централизованно, а сеансы сохраняются в базе данных.

Допустим, пользователь А хочет перейти на домен abc.com. Мое приложение перенаправляет его в основной домен аутентификации, где он входит в систему. После входа в систему генерируется токен авторизации, который сохраняется в поле таблицы сеансов и передается обратно в приложение abc.com.

Там я использую auth_token, чтобы получить session_id из базы данных и установить session_id для abc.com таким же образом.

Проблема в том, что он всегда создает новый сеанс.

Это мой код abc.com

$sessionId = // get from the database using the auth_token.
 /* CLOSE PREVIOUS SESSION */
            session_destroy();

// sets the new id.  
            session_id($sessionId);

            /** start new session * */
            session_start();

Чего мне не хватает? Я использую php с фреймворком Symfony. Не знаю, связано ли это с обработкой сеанса Symfony.

1 Ответ

4 голосов
/ 30 декабря 2011

Хорошо. Я решил свою проблему. Мне пришлось удалить старый cookie сессии после вызова session_destroy ().

Вот мой полный код, если кому-то интересно:

$sessionId =  // get session id from  the database using the auth_token
session_destroy();

$this->getResponse()->setCookie('mycookie',null,time()-3600);

session_id($sessionId);

/** start new session * */

session_start();

$this->getResponse()->setCookie('mycookie', $sessionId,null,null,'mydomain');

Спасибо всем за помощь.

...