今天在做那個ThinkPHP后臺登錄驗證的時候遇到這個問題,在多個后臺項目和前臺項目共同在根目錄下如何來判斷是否有權限。
看如果代碼,作者是將后臺和前臺放到不同的目錄下的,后臺所有操作在一個項目下,前臺也是在一個目錄下,作者用的是調用公共方法,代碼如下:
html' target='_blank'>class GlobalAction extends Action{ private $groupId; private $userId; private $userName; function _initialize() { //初始化時獲取用戶ID和用戶組ID $this->groupId=intval(Session::get('groupid')); $this->userId=intval(Session::get(C('USER_AUTH_KEY'))); $this->userName=Session::get('username'); //dump($this->groupId); /*www.it165.net 限制允許進入后臺的用戶組,默認禁用此功能 $allowAdmin=array(1,2); if(!isset($_SESSION[C('USER_AUTH_KEY')]) || !in_array($this->groupId,$allowAdmin,true) ) */ if($this->userId==false ||$this->groupId==false ) { $this->redirect('login','Public'); } } /* 獲取用戶ID */ Protected function getUid(){ //$uid=intval($_SESSION[C('USER_AUTH_KEY')]); return $this->userId; } /* 獲取用戶組ID */ Protected function getGid(){ //$gid=intval($_SESSION['groupid']); return $this->groupId; } /* 獲取用戶名 */ Protected function getName(){ //$gid=intval($_SESSION['groupid']); return $this->userName; }}
然后根據class IndexAction extends GlobalAction{}這個來判斷的
在看另外一個,根據RBAC來做的:
<?phpif (!defined('THINK_PATH')) exit();$config = require '../config.php';$array = array( 'SESSION_AUTO_START' => true, 'USER_AUTH_ON' => true, 'USER_AUTH_TYPE' => 1, // 默認認證類型 1 登錄認證 2 實時認證 'USER_AUTH_KEY' => 'authId', // 用戶認證SESSION標記 'ADMIN_AUTH_KEY' => 'admin', 'USER_AUTH_MODEL' => 'User', // 默認驗證數據表模型 'AUTH_PWD_ENCODER' => 'md5', // 用戶認證密碼加密方式 'USER_AUTH_GATEWAY' => '/Pub/login',// 默認認證網關 'NOT_AUTH_MODULE' => 'Pub', // 默認無需認證模塊 'REQUIRE_AUTH_MODULE' => '', // 默認需要認證模塊 'NOT_AUTH_ACTION' => '', // 默認無需認證操作 'REQUIRE_AUTH_ACTION' => '', // 默認需要認證操作 'GUEST_AUTH_ON' => false, // 是否開啟游客授權訪問 'GUEST_AUTH_ID' => 0, // 游客的用戶ID// 'DB_LIKE_FIELDS' => 'title|remark', 'RBAC_ROLE_TABLE' => 'dlb_role', 'RBAC_USER_TABLE' => 'dlb_role_user', 'RBAC_ACCESS_TABLE' => 'dlb_access', 'RBAC_NODE_TABLE' => 'dlb_node', 'SHOW_PAGE_TRACE' => 0, //顯示調試信息// 'DB_CASE_LOWER' => true, //查詢數組鍵值轉換為小寫 //自定義配置,是否系統管理員,默認不是 'IS_SYS_ADMIN' => 'is_admin', 'ADMIN_USER_TYPE' => 'user_type', );return array_merge($config,$array);
前面一種好理解,后面一種就不是很清楚。
PHP編程鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答