使用一个有Admin/Index/index权限的账号登陆后台,再登出。登出后,在相同tab下,使用一个没有Admin/Index/index权限的账号登陆,会提示错误,自动返回到登陆界面。回到登陆界面后,若刷新,则会陷入没有权限的错误界面和登出界面自动循环的状态下。
BUG原因:
虽然没有权限,但是AdminController并没有清除无权限账号的登陆状态,虽然使用history.back()硬生生的回到登陆界面,但是账号仍在登陆状态,所以刷新后自动请求Index/index界面,无权限,此时history.back()会回到上一次使用有权限账号退出时的登出界面,登出界面会跳到登陆界面,已登陆,再次到无权限界面,周而复始。
解决方法:
在AdminController中返回错误界面前,判断是否是请求Index/index。若是,则使用D('Member')->logout()登出无权限账号。
最佳答案