关于easyii 无法退出登录的情况
2024-09-06 15:00:39
问题描述:easyii 后台原先自己就写好了退出登录,如下图所示。点击了退出登录后,页面也会自动跳转到登录的页面。但是问题是,在浏览器点击返回的时候,还是依旧能进入到后台中,退出登录根本就没有起到作用。
原因:
退出登录的调用方法为: Yii::$app->user->logout();
这个方法写在 \vendor\yiisoft\yii2\web\User.php 这个文件中
可以看到336行,它返回的是$this->getIsGuest(); 这个方法是判断当前用户是否为游客,如果是游客那么返回true;
进入这个方法
可以看到这个方法是获取当前登录的用户信息,然后再判断是否等于null,如果当前用户信息($this->getIdentity)等于null,那么返回true
然后再进入这个方法:
这里可以看到,这个方法最后返回的是当前登录的用户信息。但是之间他做了什么,他判断了,如果存在自动登录,他会根据session中存在的用户id,重新去拉取完整用户信息,所以一旦设置了自动登录,而且session中依旧存在用户的id,那么这个方法用户返回的都是true。所以退出登录根本就没有作用了。
解决方法: 在配置文件中,将自动登录设置为false,
本人当时在设置完后,依旧没有成功退出登录,原因是session没有清除掉,所以最后我在退出登录的方法前加了一句,手动清除了session
完毕
次文章给使用yii2的新手,或者刚学php的同学们,做参考,如遇同样的问题,可尝试使用以上方法解决。
最新文章
- SQL 提示介绍 hash/merge/concat union
- Ext小总结
- JAVA EE中session的理解
- 转:eclipse的workspace和working set
- MFC获取系统当前时间的几种方法
- hdu 4223
- Linux编程环境介绍(2) -- shell(Bash) 介绍
- 全角和半角相互转换(C语言实现)
- Swift - 正则表达式的使用(附用户名、邮箱、URL等常用格式验证)
- webstorm 激活码
- springboot由于mysql表类型导致的 setRollbackOnly() 事务不回滚
- dropload.js(上拉加载插件使用过程中遇到的坑)
- scrapy + selenium 的动态爬虫
- HDU - 6314 Matrix(广义容斥原理)
- 【规范】前端编码规范——css 规范
- 去掉vim的BELL提示音
- HTTP Protocol - URI
- CSS 美化radio checkbox
- Django 之多对多关系
- 装箱问题(NOIP2001&水题测试2017082401)