thinkphp登录后台权限控制功能的实现代码
创建基类Base
<?php
namespace app\admin\controller;
use think\Controller;
class Base extends Controller
{
//初始化方法
public function _initialize()
{
$is_login = self::checkLogin();
if (!$is_login) {
return $this->redirect('login/index');
}
}
//判断是否登录
public static function checkLogin()
{
$admin_user = session(config('admin.session_user'), '', config('admin.session_user_scope'));
if ($admin_user) {
return true;
}
return false;
}
}
后台相关控制器继承Base基类
class Admin extends Base
登录后台login控制器
Login.php页面
<?php
namespace app\admin\controller;
use app\common\lib\AdminAuth;
use think\Exception;
class Login extends Base
{
//覆盖原有base基类中的初始化方法,否则会无线重定向
public function _initialize()
{
}
public function index()
{
$is_login = self::checkLogin();
if (!$is_login) {
//加载视图文件
return $this->fetch();
} else {
return $this->redirect('index/index');
}
}
这样就可以,判断用户是否登录后台,如果已经登录则跳转到后台首页,若是没有成功,则跳转到登录页面,登陆页面需要重新写一个初始化方法,覆盖基类的方法,否则会进入无限循环中,不能正常访问网页
public function _initialize()
{
}