同一会话,不同域,设置会话id



我有几个域,我想分享会话。我创建了一个这样的方法:

用户登录在中心位置完成,会话保存在数据库中。

假设用户A想要访问abc.com域名。我的应用程序将其重定向到他登录的主认证域。登录后生成一个认证令牌,它保存在会话表的一个字段中,并传递回abc.com应用程序。

在那里,我使用auth_token从数据库中获取session_id,并设置abc.com的session_id相同。

问题是它总是创建一个新的会话。

这是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会话处理有关

好的。我解决了我的问题。我必须在调用session_destroy()之后删除旧的会话cookie。

如果有人感兴趣,这里是我的完整代码:

$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');

谢谢大家的帮助。

相关内容

  • 没有找到相关文章

最新更新