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 基础教程(一)
Oct 09 PHP
php 数组的指针操作实现代码
Feb 08 PHP
分享一个Laravel好用的Cache宏
Mar 02 PHP
PHP图像裁剪缩略裁切类源码及使用方法
Jan 07 PHP
php倒计时出现-0情况的解决方法
Jul 28 PHP
php 修改上传文件大小限制实例详解
Oct 23 PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 PHP
ThinkPHP实现简单登陆功能
Apr 28 PHP
PHP Laravel 上传图片、文件等类封装
Aug 16 PHP
PHP+JS实现的实时搜索提示功能
Mar 13 PHP
phpmyadmin在宝塔面板里进不去的解决方案
Jul 06 PHP
数据结构之利用PHP实现二分搜索树
Oct 25 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
虫族 ZERG 概述
2020/03/14 星际争霸
文章推荐系统(二)
2006/10/09 PHP
PHP实现可自定义样式的分页类
2016/03/29 PHP
php实现图片以base64显示的方法
2016/10/13 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
js滚动条多种样式,推荐
2007/02/05 Javascript
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
在JS中如何调用JSP中的变量
2014/01/22 Javascript
JS显示下拉列表框内全部元素的方法
2015/03/31 Javascript
JS动态添加iframe的代码
2015/09/14 Javascript
AngularJS使用angular-formly进行表单验证
2015/12/27 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
vue项目首屏打开速度慢的解决方法
2019/03/31 Javascript
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
Python操作mongodb数据库的方法详解
2018/12/08 Python
python3安装speech语音模块的方法
2018/12/24 Python
使用Python+wxpy 找出微信里把你删除的好友实例
2019/02/21 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
如何写python的配置文件
2020/06/07 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
详解如何使用Pytest进行自动化测试
2021/01/14 Python
在HTML5 Canvas中放入图片和保存为图片的方法
2014/05/03 HTML / CSS
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
全球采购的街头服饰和帽子:Urban Excess
2020/10/28 全球购物
.NET方向面试题
2014/11/20 面试题
建筑设计学生的自我评价
2014/01/16 职场文书
消防安全宣传口号
2014/06/10 职场文书
地理信息科学专业推荐信
2014/09/08 职场文书
教师党员个人整改措施材料
2014/09/16 职场文书
户籍证明模板
2014/09/28 职场文书
入党培养人考察意见
2015/06/08 职场文书
三八妇女节新闻稿
2015/07/17 职场文书
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python