编程语言
首页 > 编程语言> > PHP-同一会话,不同域,设置会话ID

PHP-同一会话,不同域,设置会话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();

我缺少什么?
我在Symfony框架中使用php.不知道它是否与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');

谢谢大家的帮助.

标签:cookies,cross-domain,symfony1,session,php
来源: https://codeday.me/bug/20191101/1986891.html