ThinkPHP5.0之用户登录检测

本文介绍两种使用ThinkPHP5.0实现用户登录状态检测的方法:一种是通过在控制器中继承检查类来实现;另一种是在行为目录中创建检测类,并在需要检测的控制器中引入Hook类来完成。

ThinkPHP5.0之用户登录检测

第一种
  1. 当用户登录成功后将用户信息存入session中
  2. 在控制器下新建一个检测类Check.php 继承 基类
  3. 在检测类中调用基类的初始化方法_initialize()
	<?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');
		    }
	    }
	}
  1. 控制器都继承检测类即可
第二种
  1. 当用户登录成功后将用户信息存入session中
  2. 在模块下创建一个行为目录behavior
  3. 在行为目录中新建一个检测类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);
			}
		}
	}
  1. 在需要登录检测的控制器中引入Hook类并声明构造方法
	public function __construct(Request $request = null)
	{
		parent::__construct($request);
		Hook::listen('CheckAuth', $params);
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sheliutao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值