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中选择什么接口(mysql、mysqli)访问mysql
Feb 06 PHP
PHP无法访问远程mysql的问题分析及解决
May 16 PHP
使用php测试硬盘写入速度示例
Jan 27 PHP
将php数组输出html表格的方法
Feb 24 PHP
浅析PHP中strlen和mb_strlen的区别
Aug 31 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
Nov 18 PHP
PHP根据图片色界在不同位置加水印的方法
Jul 01 PHP
PHP中如何判断exec函数执行成功?
Aug 04 PHP
PHP Filter过滤器全面解析
Aug 09 PHP
php is_writable判断文件是否可写实例代码
Oct 13 PHP
Yii2框架redis基本应用示例
Jul 13 PHP
解决laravel session失效的问题
Oct 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
雄兵连:天使彦天使彦为爱折翼,彦和炙心同时念动的誓言!
2020/03/02 国漫
用php的ob_start来生成静态页面的方法分析
2011/03/09 PHP
Yii中render和renderPartial的区别
2014/09/03 PHP
Yii框架中memcache用法实例
2014/12/03 PHP
php+html5基于websocket实现聊天室的方法
2015/07/17 PHP
PHP钩子实现方法解析
2019/05/21 PHP
Smarty模板语法详解
2019/07/20 PHP
使用Laravel中的查询构造器实现增删改查功能
2019/09/03 PHP
Jquery 最近浏览过的商品的功能实现代码
2010/05/14 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
javascript与jquery中跳出循环的区别总结
2013/11/04 Javascript
jQuery简单实现禁用右键菜单
2015/03/10 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
angular.js 路由及页面传参示例
2017/02/24 Javascript
微信小程序实战之轮播图(3)
2017/04/17 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
关于vue-router的那些事儿
2018/05/23 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
JS实现“全选”和"全不选"功能代码实例
2020/02/06 Javascript
详解JavaScript自定义函数
2020/07/29 Javascript
[03:28]2014DOTA2国际邀请赛 走近EG战队天才中单Arteezy
2014/07/12 DOTA
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
水果超市创业计划书
2014/01/27 职场文书
社会公德演讲稿
2014/05/20 职场文书
个人融资协议书
2014/10/02 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
远程教育学习心得体会
2016/01/23 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server