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往windows中添加用户
Dec 06 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 PHP
PHP设计模式之调解者模式的深入解析
Jun 13 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
Apr 08 PHP
ThinkPHP实现批量删除数据的代码实例
Jul 02 PHP
php导出中文内容excel文件类实例
Jul 06 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
Sep 14 PHP
详解PHP中foreach的用法和实例
Oct 25 PHP
PHP Mysqli 常用代码集合
Nov 12 PHP
Zend Framework前端控制器用法示例
Dec 11 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 PHP
Laravel validate error处理,ajax,json示例
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
PHP脚本数据库功能详解(中)
2006/10/09 PHP
PHP 面向对象详解
2012/09/13 PHP
ThinkPHP CURD方法之order方法详解
2014/06/18 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
2020/02/10 PHP
JS request函数 用来获取url参数
2010/05/17 Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
2012/02/27 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
javascript 获取浏览器版本
2015/01/21 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
2016/01/27 Javascript
解决ionic和angular上拉加载的问题
2017/08/03 Javascript
vue源码解析之事件机制原理
2018/04/21 Javascript
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
layui实现点击按钮给table添加一行
2018/08/10 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
2018/12/06 Javascript
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
[01:20]2018DOTA2亚洲邀请赛总决赛战队Mineski晋级之路
2018/04/07 DOTA
Python格式化css文件的方法
2015/03/10 Python
在Python中使用Mako模版库的简单教程
2015/04/08 Python
python实现决策树分类算法
2017/12/21 Python
pandas去除重复列的实现方法
2019/01/29 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
python使用if语句实现一个猜拳游戏详解
2019/08/27 Python
Python接口自动化判断元素原理解析
2020/02/24 Python
html5 worker 实例(一) 为什么测试不到效果
2013/06/24 HTML / CSS
美国最大的香水出口:FragranceX.com
2017/11/04 全球购物
ASP.NET中的身份验证有那些
2012/07/13 面试题
《骆驼和羊》教学反思
2014/02/27 职场文书
主管竞聘书范文
2014/03/31 职场文书
无偿献血倡议书
2014/04/14 职场文书
学生个人评语大全
2015/01/04 职场文书
社会实践活动报告
2015/02/05 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
梳理总结Python开发中需要摒弃的18个坏习惯
2022/01/22 Python