>  Q&A  >  본문

thinkphp6의 백엔드 시스템이 차례로 로그인 리디렉션을 수행하지 않으면 어떻게 해야 합니까?

class BaseAdmin은 Controller

를 확장합니다

{

public function __construct(){

// Controller에는 __construct 매직 메소드가 있으며, 직접 상속하여

parent::__construct();

// 1, public을 호출합니다. 먼저 해당 메소드에서 로그인 여부를 확인하세요. 로그인하지 않으셨다면 로그인 페이지로 이동하세요.

// 로그인 페이지와 메소드를 생성해야 합니다

$this->_admin = session('admin');

// 로그인하지 않은 사용자는 액세스할 수 없습니다

if(!$this-> _admin) {

header('위치: /admins/Account/login');

종료;

}

$this->ass('admin',$this->_admin);

/ / 판단 사용자에게 권한이 있습니까

$this->db = new Sysdb;

$group = $this->db->table('admin_groups')->where(array('gid'= >$ this->_admin['gid']))->item();

if(!$group){

$this->request_error('죄송합니다. 권한이 없습니다.' );

}

$rights = json_decode($group['rights']);

// 현재 액세스 메뉴

// 99, request()->controller(); // 99, request() ->action(); 현재 메소드 가져오기

$controller = request()->controller();

$action = request()->action();

// 99, 메뉴 테이블( admin_menus)을 쿼리하여 동일한 메뉴인 파일 이름과 메소드 이름을 찾습니다. 참고: 메뉴의 메소드 이름과 파일 이름을 반복하지 마십시오

$res = $this->db->table('admin_menus')->where(array('controller'=>$controller, 'method' =>$action))->item();

if(!$res){

$this->request_error('죄송합니다. 방문하신 기능이 존재하지 않습니다.');

}

if ($res['status']==1){

$this->request_error('죄송합니다. 이 기능은 비활성화되었습니다.');

}

if(!in_array($res[' mid'] ,$rights)){

$this->request_error('죄송합니다. 권한이 없습니다.');

}

}

与时赛跑与时赛跑807일 전1139

모든 응답(1)나는 대답할 것이다

  • 手机用户6999042

    手机用户69990422022-08-29 09:24:33

    직접 질문하고 답해 보세요

    회신하다
    0
  • 취소회신하다