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 md5下16位和32位的实现代码
Apr 09 PHP
php curl常见错误:SSL错误、bool(false)
Dec 28 PHP
php笔记之:有规律大文件的读取与写入的分析
Apr 26 PHP
PHP在引号前面添加反斜杠(PHP去除反斜杠)
Sep 28 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
ThinkPHP中自定义错误页面和提示页面实例
Nov 22 PHP
Yii框架登录流程分析
Dec 03 PHP
浅谈PHP接收POST数据方式
Jun 05 PHP
php单例模式的简单实现方法
Jun 10 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
Sep 11 PHP
php通过pecl方式安装扩展的实例讲解
Feb 02 PHP
PHP等比例压缩图片的实例代码
Jul 26 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错误和异常处理功能模块示例
2016/11/12 PHP
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
js判断undefined类型示例代码
2014/02/10 Javascript
JS 使用for循环遍历子节点查找元素
2014/09/06 Javascript
javascript实现的多个层切换效果通用函数实例
2015/07/06 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
2016/06/12 Javascript
自己封装的一个简单的倒计时功能实例
2016/11/23 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
在Vue项目中引入JQuery-ui插件的讲解
2019/01/27 jQuery
Vue 列表上下过渡效果的实例代码
2019/06/25 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
Vue 实现简易多行滚动"弹幕"效果
2020/01/02 Javascript
Django实现图片文字同时提交的方法
2015/05/26 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
python根据文章标题内容自动生成摘要的实例
2019/02/21 Python
python解析xml简单示例
2019/06/21 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
python PIL模块的基本使用
2020/09/29 Python
html5基础标签(html5视频标签 html5新标签用法)
2013/12/30 HTML / CSS
BookOutlet加拿大:在网上书店购买廉价折扣图书和小说
2018/10/05 全球购物
小学红领巾中秋节广播稿
2014/01/13 职场文书
社会实践评语
2014/04/28 职场文书
一分钟演讲稿
2014/04/30 职场文书
住宅使用说明书
2014/05/09 职场文书
2014入党积极分子批评与自我批评思想报告
2014/10/06 职场文书
继承公证书格式
2015/01/26 职场文书
傲慢与偏见电影观后感
2015/06/10 职场文书
运动会100米加油稿
2015/07/21 职场文书
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android
详解Java ES多节点任务的高效分发与收集实现
2021/06/30 Java/Android