设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
快捷导航
登录
注册
论坛首页
BBS
建站模版
微站设计
虚拟主机
企业邮箱
博客日志
Blog
搜索
搜索
搜索
热搜
长春
优惠
活动
做网站
本版
帖子
用户
本版
帖子
用户
请
登录
后使用快捷导航
没有帐号?
立即注册
道具
勋章
任务
留言板
设置
我的收藏
退出
时时商务社区
»
论坛首页
›
建站资源
›
建站技术
›
YII2自动登录Cookie总是失效的解决方法
返回列表
查看:
437
|
回复:
0
YII2自动登录Cookie总是失效的解决方法
[复制链接]
福多多fluke
当前离线
积分
7736
2600
主题
2600
帖子
7736
积分
论坛元老
论坛元老, 积分 7736, 距离下一级还需 9992263 积分
论坛元老, 积分 7736, 距离下一级还需 9992263 积分
积分
7736
发消息
电梯直达
楼主
发表于 2018-2-14 05:25:02
|
只看该作者
|
正序浏览
|
阅读模式
前言
最近做Yii2自动登录功能,发现即使开启了Yii2的自动登录配置功能,浏览器关闭后,再次打开浏览器还是处于非登录状态。
网上查询资料基本没有相同情况。
查询登录源码:
protected function sendIdentityCookie($identity, $duration)
{
$cookie = new Cookie($this->identityCookie);
$cookie->value = json_encode([
$identity->getId(),
$identity->getAuthKey(),
$duration,
], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
$cookie->expire = time() + $duration;
Yii:
app->getResponse()->getCookies()->add($cookie);
}
打印cookie变量发现内容没有任何问题。复制代码去其他控制器执行也是毫无问题。
查看浏览器,Yii2设置的sessionID也是正常的,也就是cookie只是这里设置不成功。
既然,系统没问题,浏览器没问题,那么就是传输过程有问题。
后来终于发现:
原来在调用$model->login()登录方法过后,我直接输出json数据到浏览器,并且在后面有exit方法,直接阻止了控制器继续执行。
所以,yii2执行到exit处就完了,导致头信息header也没有被传输到浏览器。所以浏览器根本没有收到php设置cookie的命令。
总结
Yii2登录或者需要设置cookie的控制器,千万不要exit or die,直接使用if else去判断,不要打断执行。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
您可能感兴趣的文章:
从零开始学YII2框架(一)通过Composer安装Yii2框架
从零开始学YII2框架(二)通过 Composer 安装扩展插件
从零开始学YII2框架(三)扩展插件yii2-gird
从零开始学YII2框架(四)扩展插件yii2-kartikgii
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
从零开始学YII2框架(六)高级应用程序模板
Yii2中OAuth扩展及QQ互联登录实现方法
Yii2框架实现注册和登录教程
Yii2实现多域名跨域同步登录退出
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
Yii2框架实现登录、退出及自动登录功能的方法详解
分享到:
QQ好友和群
QQ空间
腾讯微博
腾讯朋友
收藏
0
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
用户反馈
客户端