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 相关文章推荐
建立动态的WML站点(三)
Oct 09 PHP
php修改时间格式的代码
May 29 PHP
php 删除一个数组中的某个值.兼容多维数组!
Feb 18 PHP
php设计模式之单例模式使用示例
Jan 20 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
May 28 PHP
php计算整个目录大小的方法
Jun 01 PHP
php开发微信支付获取用户地址
Oct 04 PHP
php检查页面是否被百度收录
Oct 28 PHP
php语言的7种基本的排序方法
Dec 28 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
Apr 11 PHP
php封装的page分页类完整实例代码
Feb 01 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
Aug 30 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
PHP常用函数小技巧
2008/09/11 PHP
php 404错误页面实现代码
2009/06/22 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
PHP MVC框架中类的自动加载机制实例分析
2019/09/18 PHP
jQuery 1.5 源码解读 面向中高阶JSER
2011/04/05 Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
2011/06/20 Javascript
JavaScript作用域与作用域链深入解析
2013/12/06 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
分享Javascript实用方法二
2015/12/13 Javascript
利用JS提交表单的几种方法和验证(必看篇)
2016/09/17 Javascript
Boostrap实现的登录界面实例代码
2016/10/09 Javascript
Bootstrap基本布局实现方法详解
2016/11/25 Javascript
JS运动特效之链式运动分析
2018/01/24 Javascript
vue项目实战总结篇
2018/02/11 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
python学习笔记:字典的使用示例详解
2014/06/13 Python
Python下的twisted框架入门指引
2015/04/15 Python
python3 遍历删除特定后缀名文件的方法
2018/04/23 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
Python制作exe文件简单流程
2019/01/24 Python
Python正则表达式匹配日期与时间的方法
2019/07/07 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
2019/10/27 Python
Python while循环使用else语句代码实例
2020/02/07 Python
使用Python发现隐藏的wifi
2020/03/04 Python
教你如何一步一步用Canvas写一个贪吃蛇
2018/10/22 HTML / CSS
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
Html5 canvas画图白板踩坑
2020/06/01 HTML / CSS
医院护士的求职信范文
2013/12/26 职场文书
恶搞卫生巾广告词
2014/03/18 职场文书
结对共建工作方案
2014/06/02 职场文书
反对四风自我剖析材料
2014/10/07 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
室外天线与收音机天线杆接合方法
2022/04/05 无线电