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通用防注入程序 推荐
Feb 26 PHP
php过滤HTML标签、属性等正则表达式汇总
Sep 22 PHP
PHP常用技术文之文件操作和目录操作总结
Sep 27 PHP
10个实用的PHP正则表达式汇总
Oct 23 PHP
PHP中上传多个文件的表单设计例子
Nov 19 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
Nov 04 PHP
PHP接收json 并将接收数据插入数据库的实现代码
Dec 01 PHP
教你php如何实现验证码
Jan 20 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 PHP
php实现mysql连接池效果实现代码
Jan 25 PHP
PHP微信开发之微信录音临时转永久存储
Jan 26 PHP
php测试kafka项目示例
Feb 06 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 magic_quotes_gpc的使用方法详解
2013/06/24 PHP
javascript indexOf函数使用说明
2008/07/03 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
js使用ajax读博客rss示例
2014/05/06 Javascript
js实现编辑div节点名称的方法
2014/12/17 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
JavaScript里实用的原生API汇总
2015/05/14 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
2015/12/10 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
2016/03/05 Javascript
js闭包引起的事件注册问题介绍
2016/03/29 Javascript
浅谈angular4 ng-content 中隐藏的内容
2017/08/18 Javascript
NodeJs通过async/await处理异步的方法
2017/10/09 NodeJs
seaJs使用心得之exports与module.exports的区别实例分析
2017/10/13 Javascript
详谈js的变量提升以及使用方法
2018/10/06 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
使用axios请求接口,几种content-type的区别详解
2019/10/29 Javascript
Python矩阵常见运算操作实例总结
2017/09/29 Python
Python实现的凯撒密码算法示例
2018/04/12 Python
对python3 urllib包与http包的使用详解
2018/05/10 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
2019/02/25 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
2019/06/19 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
python实现控制台输出颜色
2021/03/02 Python
一些网络技术方面的面试题
2014/05/01 面试题
实习生单位鉴定意见
2013/12/04 职场文书
自我鉴定三原则
2014/01/13 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
岗位竞聘报告范文
2014/11/06 职场文书
世界气象日活动总结
2015/02/27 职场文书
给女朋友的道歉短信
2015/05/12 职场文书
2015年统战工作总结
2015/05/19 职场文书
交通事故调解协议书
2015/05/20 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书