<?php
namespace app\admin\controller;
use think\Controller;
use think\Session;
class Check extends Controller
{
/**
* 初始化方法
*/
public function _initialize()
{
// 检测用户session是否存在
if (!Session::get('admin_login')) {
$this->error("请先登录!", 'admin/login/index');
}
}
}
控制器都继承检测类即可
第二种
当用户登录成功后将用户信息存入session中
在模块下创建一个行为目录behavior
在行为目录中新建一个检测类UserCheck.php进行判断
<?php
namespace app\admin\behavior;
// 登录检测类
class UserCheck
{
use \traits\controller\Jump;// 类里面引入jump类
// 绑定到CheckAuth标签,可以用于检测Session以用来判断用户是否登录
public function run(&$params)
{
$user = session('admin_login');
// 这里的session 是当用户登录成功后创建的一个session 如果没有的话就代表没有用户登录
// dump($user);
if (!isset($user)) {
$user = "";
}
if ($user == null || $user == "" || $user == "null" || $user == 0) {
return $this->error('您还未登录,请先登录!', 'admin/login/index', 1);
}
}
}
在需要登录检测的控制器中引入Hook类并声明构造方法
public function __construct(Request $request = null)
{
parent::__construct($request);
Hook::listen('CheckAuth', $params);
}