YII2自动登录Cookie总是失效的解决方法


Posted in PHP onJune 28, 2017

前言

最近做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去判断,不要打断执行。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
PHP 模拟登陆MSN并获得用户信息
May 16 PHP
PHP下escape解码函数的实现方法
Aug 08 PHP
关于IIS php调用com组件的权限问题
Jan 11 PHP
php提示undefined index的几种解决方法
May 21 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
Jan 23 PHP
PHP里8个鲜为人知的安全函数分析
Dec 09 PHP
浅析PHP文件下载原理
Dec 25 PHP
PHP网站建设的流程与步骤分享
Sep 25 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
Mar 23 PHP
Laravel使用支付宝进行支付的示例代码
Aug 16 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
Aug 21 PHP
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
Aug 03 PHP
php的常量和变量实例详解
Jun 27 #PHP
Zend Framework框架中实现Ajax的方法示例
Jun 27 #PHP
PHP用continue跳过本次循环中剩余代码的注意点
Jun 27 #PHP
PHP API接口必备之输出json格式数据示例代码
Jun 27 #PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
Jun 27 #PHP
简单谈谈PHP面向对象之标识对象
Jun 27 #PHP
什么是PHP文件?如何打开PHP文件?
Jun 27 #PHP
You might like
通达OA公共代码 php常用检测函数
2011/12/14 PHP
PHP实现HTML页面静态化的方法
2015/11/04 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
用Javascript 获取页面元素的位置的代码
2009/09/25 Javascript
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
html组件不可输入(只读)同时任何组件都有效
2013/04/01 Javascript
js简单的弹出框有关闭按钮
2014/05/05 Javascript
js实现鼠标感应图片展示的方法
2015/02/27 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
jQuery实现文本框输入同步的方法
2015/06/20 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/15 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
2018/03/01 Javascript
vue等两个接口都返回结果再执行下一步的实例
2020/09/08 Javascript
Python 硬币兑换问题
2019/07/29 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
python opencv进行图像拼接
2020/03/27 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
2020/04/08 Python
Python requests接口测试实现代码
2020/09/08 Python
css3实现文字首尾衔接跑马灯的示例代码
2020/10/16 HTML / CSS
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
HTML5页面无缝闪开的问题及解决方案
2020/06/11 HTML / CSS
学校门卫工作职责
2013/12/07 职场文书
大班开学家长寄语
2014/04/04 职场文书
绿色环保家庭事迹材料
2014/08/31 职场文书
建筑工地文明标语
2014/10/09 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
公开致歉信
2019/06/24 职场文书
mysql批量新增和存储的方法实例
2021/04/07 MySQL
python基础详解之if循环语句
2021/04/24 Python
解决Tkinter中button按钮未按却主动执行command函数的问题
2021/05/23 Python
python3+PyQt5+Qt Designer实现界面可视化
2021/06/10 Python
一次MySQL启动导致的事故实战记录
2021/09/15 MySQL
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫
浅谈Redis 中的过期删除策略和内存淘汰机制
2022/04/03 Redis