为了项目的安全性考虑,就是当登录超时或者未登录时,通过浏览器的地址栏直接输入项目内的地址时,如果想禁止未登录的用户不可以访问到后台,可以这样做:
1、首先每个类都继承了一个基类think\Controller:
use think\Controller;
class Index extends Controller{
}
2、在这个基类中,默认的构造方法好像调用了 _initialize() 这个初始化的方法, 没有调用可以自己手动调用下,然后我们可以在这初始化的方法中写上以下代码,在这个基类中有一个空的protected function initialize(){}方法,可以在其中直接写:
在这里插入代码片
/**
* 初始化操作
* @access protected
*/
protected function _initialize()
{
//获取当前页面模块名,控制器名
$module = $this->request->module();
$controller = $this->request->controller();
$action = $this->request->action();
//后端判断
if($module == 'admin') {
if($controller != 'Login' && empty(Cookie::get('user'))) {
//登录超时或未登录跳转到登陆页面
$this->error('您已登陆超时,即将退出请重新登陆~');
}
}
}
这样,每次执行某个方法时,都会进入到这个方法里,判断是否已登陆,未登录或者登陆超时,就会自动跳转到自定义的页面。