前言

Recently, the Yii2 automatic login function has been done. 研究发现,即使在yii2自动登录配置功能打开,浏览器关闭后再关闭浏览器,它仍然是在非登录状态。

因特网上没有相同的信息。

查询登录源代码:


保护功能sendidentitycookie(合身份,美元的持续时间)
{
$ COOKIE =新的饼干(美元-> identitycookie);
$ COOKIE ->价值= json_encode(
$身份-> getID(),
$身份-> getauthkey(),
美元的持续时间,
json_unescaped_slashes | },json_unescaped_unicode);
Cookie =过期=时间()+持续时间;
Yii::$应用程序-> GetResponse()-> getCookies()->添加($ COOKIE);
}


打印cookie变量,发现没有问题。将代码复制到其他控制器不是问题。

在浏览器中,通过yii2 SessionID设置也正常,就是这里的饼干是不成功的。

由于系统没有问题,浏览器是正确的,这是传输过程中的一个问题。

后来,人们终于发现,在调用$模式>登录()登录方法后,我直接将JSON数据输出到浏览器,后面有退出方法,它直接阻止控制器继续执行。

所以,yii2执行退出,导致头信息头不会传递给浏览器,这样浏览器没有收到PHP在所有设置cookie的命令。

总结

yii2登录或需要设置cookie控制器,不退出或死亡,直接使用if-else判断,不中断执行。

以上就是本文的全部内容。希望本文的内容能给大家的学习或工作带来一定的帮助。如果有任何疑问,您可以留言交流,谢谢您的支持。