YII2自动登录Cookie总是失效的解决方法

前言

最近做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去判断,不要打断执行。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

时间: 2024-09-23 14:33:54

YII2自动登录Cookie总是失效的解决方法的相关文章

android开发 eclipse alt+”/”自动提示失效的解决方法_Android

1.用于没有一点提示的情况:依次打开eclipse上面的windows --preferences --java --editor -- content assist ,在右上方有一行"select the proposal kinds contained in the 'default' content assist list" 下面,勾选Java Prolosals 复选框,保存退出即可. 开发 eclipse alt+/自动提示失效的解决方法_Android-eclipse al

Android实现QQ登录界面遇到问题及解决方法_Android

先给大家炫下效果图: 首先过程中碰到的几个问题: 1.对 EditText 进行自定义背景 2.运行时自动 EditText 自动获得焦点 3.在获得焦点时即清空 hint ,而不是输入后清空 4.清空按钮的出现时机(在得到焦点并且有输入内容时) ......... --- 这些问题都有一一解决 --- 以下是代码: 布局 fragment_main(问题2) <!-- android:focusable="true" android:focusableInTouchMode=&

ajax 操作全局监测,用户session失效的解决方法_AJAX相关

ajax 操作全局监测,用户session失效的解决方法 jQuery(function ($) { // 备份jquery的ajax方法 var _ajax = $.ajax; // 重写ajax方法,先判断登录在执行success函数 $.ajax = function (opt) { var _success = opt && opt.success || function (a, b) { }; var _opt = $.extend(opt, { success: functio

ajax 操作全局监测,用户session失效的解决方法

ajax 操作全局监测,用户session失效的解决方法 jQuery(function ($) { // 备份jquery的ajax方法 var _ajax = $.ajax; // 重写ajax方法,先判断登录在执行success函数 $.ajax = function (opt) { var _success = opt && opt.success || function (a, b) { }; var _opt = $.extend(opt, { success: functio

margin-top失效的解决方法

异常处理汇总-前端系列 http://www.cnblogs.com/dunitian/p/4523015.html 我的是属于这种情况 按照网上的说法,我就是这个现象了 两个层box1和box2,box1具有浮动属性,box2没有,这时候设置box2的上边距margin-top没有效果.   这是网上的解决方法(并不适用我的情况)http://developer.51cto.com/art/201008/222728.htm 本文向大家描述一下margin-top失效的解决方法,margin-

python实现自动登录人人网并采集信息的方法

  本文实例讲述了python实现自动登录人人网并采集信息的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68

win7系统搜索功能失效的解决方法

  win7系统搜索功能失效的解决方法           1.在桌面上按组合键(win+R)打开"运行窗口"或者点击桌面左下角"开始菜单"找到"运行...",在运行界面输入框输入"regedit",按回车键确认,如下图所示: 2.打开注册表编辑器后,依次展开路径"HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerCabinetState&q

Win8系统无法自动检测周边wifi信号的解决方法

Win8系统无法自动检测周边wifi信号的解决方法 一.在Win8系统桌面上,用鼠标右键点击,然后在弹出的菜单上选择"管理",即可打开Win8系统计算机管理面板; 二.在Win8系统计算机管理面板上,点击左侧窗格中的"存储"-"服务和应用程序"-"服务",接着在右侧窗格中找到服务选项; 三.Win8系统服务功能面板,找到WLAN AutoConfig服务,并双击打开,将启动类型设置为"自动",再将服务状态调

XP系统注销后登录需输入用户名的解决方法

XP系统注销后登录需输入用户名的解决方法   方法如下: 1.新建一个记事本,另存为".reg"文件,内容如下:电脑常识 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon] "AutoAdminLogon"="1" "ForceAutoLogon"="1&q