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 文件缓存的性能测试
Apr 25 PHP
PHP中如何判断AJAX提交的数据
Feb 05 PHP
phpcms模块开发之swfupload的使用介绍
Apr 28 PHP
解析左右值无限分类的实现算法
Jun 20 PHP
php中sql注入漏洞示例 sql注入漏洞修复
Jan 24 PHP
PHP实现采集抓取淘宝网单个商品信息
Jan 08 PHP
php获取文件后缀的9种方法
Mar 22 PHP
PHP设计模式之迭代器模式
Jun 17 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 PHP
PHP的new static和new self的区别与使用
Nov 27 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 29 PHP
Memcached介绍及php-memcache扩展安装
Apr 01 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
ThinkPHP CURD方法之page方法详解
2014/06/18 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
android上传图片到PHP的过程详解
2015/08/03 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
JavaScript 内置对象属性及方法集合
2010/07/04 Javascript
jquery 查找新建元素代码
2010/07/06 Javascript
Jquery通过JSON字符串创建JSON对象
2014/08/24 Javascript
一个不错的js html页面倒计时可精确到秒
2014/10/22 Javascript
浅析Javascript中“==”与“===”的区别
2014/12/23 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
2015/04/03 Javascript
在Javascript中处理数组之toSource()方法的使用
2015/06/09 Javascript
javascript实现继承的简单实例
2015/07/26 Javascript
jQuery无刷新切换主题皮肤实例讲解
2015/10/21 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
2020/04/20 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
AngularJS实现ajax请求的方法
2016/11/22 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
原生js 封装get ,post, delete 请求的实例
2017/08/11 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
2018/08/31 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
2019/11/04 jQuery
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
python输入错误密码用户锁定实现方法
2017/11/27 Python
python面向对象法实现图书管理系统
2019/04/19 Python
详解Python3除法之真除法、截断除法和下取整对比
2019/05/23 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
美国在线珠宝商店:SZUL
2017/02/11 全球购物
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
Intersport西班牙:在线体育商店
2019/11/06 全球购物
Charles&Keith美国官方网站:新加坡快时尚鞋类和配饰零售商
2019/11/27 全球购物
物流司机岗位职责
2013/12/28 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
《天安门广场》教学反思
2014/04/23 职场文书
学雷锋倡议书
2015/01/19 职场文书
2015年度服装销售工作总结
2015/03/31 职场文书
2015年化验员工作总结
2015/04/10 职场文书