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 flush类输出缓冲剖析
Oct 19 PHP
eAccelerator的安装与使用详解
Jun 13 PHP
php校验表单检测字段是否为空的方法
Mar 20 PHP
在Mac上编译安装PHP7的开发环境
Jul 28 PHP
基于PHP给大家讲解防刷票的一些技巧
Nov 18 PHP
php生成4位数字验证码的实现代码
Nov 23 PHP
php英文单词统计器
Jun 23 PHP
PHP实现查询手机归属地的方法详解
Apr 28 PHP
PHP学习笔记之session
May 06 PHP
php和vue配合使用技巧和方法
May 09 PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
Apr 14 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
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
2013/06/03 PHP
PHP生成sitemap.xml地图函数
2013/11/13 PHP
PHP微信开发之有道翻译
2016/06/23 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
2017/08/18 PHP
PHP _construct()函数讲解
2019/02/03 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
javascript中的array数组使用技巧
2010/01/31 Javascript
javascript之通用简单的table选项卡实现(二)
2010/05/09 Javascript
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
不同Jquery版本引发的问题解决
2013/10/14 Javascript
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
2014/09/01 Javascript
JavaScript的null和undefined区别示例介绍
2014/09/15 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
2017/02/05 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
js实现字符全排列算法的简单方法
2017/05/01 Javascript
AngularJS中ng-class用法实例分析
2017/07/06 Javascript
微信小程序 同步请求授权的详解
2017/08/04 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
vue translate peoject实现在线翻译功能【新手必看】
2018/06/07 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
JavaScript两种计时器的实例讲解
2019/01/31 Javascript
Python中强大的命令行库click入门教程
2016/12/26 Python
python pygame模块编写飞机大战
2018/11/20 Python
python TF-IDF算法实现文本关键词提取
2019/05/29 Python
python3中类的继承以及self和super的区别详解
2019/06/26 Python
解决pytorch报错:AssertionError: Invalid device id的问题
2020/01/10 Python
python中如何使用虚拟环境
2020/10/14 Python
Etam德国:内衣精品店
2019/08/25 全球购物
存储过程和sql语句的优缺点
2014/07/02 面试题
优秀应届毕业生自荐信
2013/11/16 职场文书
工作疏忽、懈怠的检讨书
2014/09/11 职场文书
办公室卫生管理制度
2015/08/04 职场文书
高中政治教师教学反思
2016/02/23 职场文书
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android