ThinkPHP3.0 RBAC示例登录验证失败无法返回登录解决
来源:互联网 发布:最小的刻录软件 编辑:程序博客网 时间:2024/05/18 01:58
原因分析:输入正确账号登录时,系统记录了账号ID,验证失败未清除该账号,导致系统连续验证造成死循环。
解决方案:在CommonAction.class.php(_initialize)加入验证失败时清除当前登录账号代码即可。
if(isset($_SESSION[C('USER_AUTH_KEY')])) { unset($_SESSION[C('USER_AUTH_KEY')]); unset($_SESSION); session_destroy(); }
修改后代碼如下:
function _initialize() { import('@.ORG.Util.Cookie');// 用户权限检查if (C ( 'USER_AUTH_ON' ) && !in_array(MODULE_NAME,explode(',',C('NOT_AUTH_MODULE')))) { import('@.ORG.Util.RBAC'); // dump($_SESSION['_ACCESS_LIST']);if (! RBAC::AccessDecision ()) {//检查认证识别号if (! $_SESSION [C ( 'USER_AUTH_KEY' )]) {if ($this->isAjax()){$this->ajaxReturn(true, "", 301);} else {//跳转到认证网关redirect ( PHP_FILE . C ( 'USER_AUTH_GATEWAY' ) );}} // 没有权限 抛出错误if (C ( 'RBAC_ERROR_PAGE' )) { // 定义权限错误页面 redirect ( C ( 'RBAC_ERROR_PAGE' ) );} else { if (C ( 'GUEST_AUTH_ON' )) {$this->assign ( 'jumpUrl', PHP_FILE . C ( 'USER_AUTH_GATEWAY' ) );}// 提示错误信息 if(isset($_SESSION[C('USER_AUTH_KEY')])) { unset($_SESSION[C('USER_AUTH_KEY')]); unset($_SESSION); session_destroy(); }$this->error( L ( '_VALID_ACCESS_' ) );}}}}
- ThinkPHP3.0 RBAC示例登录验证失败无法返回登录解决
- onedriver登录失败解决
- 解决错误1069:由于登录失败而无法启动服务
- ubuntu无法登录解决
- PHP 登录与验证示例
- 登录界面验证设计示例
- thinkphp中RBAC示例中登录没有权限的问题
- Thinkphp3.2.3登录页面验证码非正常显示
- thinkPHP5.0开发微信小程序登录接口signature验证失败
- Thinkphp3.2.3中的RBAC权限验证
- Thinkphp3.2.3中的RBAC权限验证
- OEM无法登录的解决
- 解决网易考拉无法登录
- Fedora16无法用root账户登录解决方法(提示:验证失败)
- CentOS更改ssh登录失败验证次数
- 解决Linux系统安装后,root用户无法登录,提示“无法验证用户”的错误问题
- 解决Linux系统安装后,root用户无法登录,提示“无法验证用户”的错误问题
- 无法打开登录所请求的数据库 "cms"。登录失败?
- Qt问题集
- Android 菜单(OptionMenu)大全 建立你自己的菜单
- arm-linux-gcc安装 和 环境变量设置
- shell编程基础知识
- .trc and .trm files in Oracle 11g
- ThinkPHP3.0 RBAC示例登录验证失败无法返回登录解决
- 企业应用架构模式之领域逻辑模式
- java 敏感字过滤
- VirtualBox扩容vmdk格式的Windows分区
- 排序算法总结
- xcode4快捷键
- ORA-12528
- Android应用如何启动其他应用程序
- 音乐优化