您好,登錄后才能下訂單哦!
這篇文章主要介紹Thinkphp5中auth權限設置以及實現的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
1.將auth類下載好 放置目錄: extend\auth\auth.php
2.將類中的SQL語句執行,可以在數據庫中創建3張表 auth_group(用戶組表) auth_rule(權限規則表) auth_group_access(用戶與用戶組關聯表)
3.我想給規則 添加一個級別關系(類似于無限極分類) auth_rule(權限規則表) 中添加3個字段 pid(父級id ,0為頂級權限) level(級別) sort(排序),如下圖
4,首先 自己創建管理員表,比如叫admin表,增刪改查 自己去正常設計,group字段為所屬用戶組
5.auth_group用戶組的 增刪改查 也自己去制作一下,id,用戶組名稱,狀態(開啟,或者關閉),規則(所對應的是規則表的id)
6.auth_rule規則表 增刪改查 也自己去制作一下,id,name(控制器/方法),title(規則名稱 ) status狀態(開啟,或者關閉),
7. 在添加用戶的時候 給用戶選擇 所屬用戶組, uid(對應的是用戶id) group_id(對應的是用戶所屬用戶組的id),這樣就關聯起來了
8.把會員登陸功能做好,登陸成功設置session('id'),將當前登陸會員ID存在session中
9.最關鍵的的一步,就是使用auth類進行驗證,在common.php這個公共頁面中 使用
<?php namespace app\admin\controller; use think\Controller; use think\Request; use auth\Auth; //引入suth類 class Common extends Controller { public function _initialize(){ //初始化判斷用戶是否已經登陸 if(!session('uname')){ $this->error('請先登陸系統!','login/index'); } //獲得當前頁面的控制器 / 方法 $request=Request::instance(); $moudle=$request->module(); //獲取當前控制器名稱 $con=$request->controller(); //獲取當前控制器名稱 $action=$request->action(); //獲取當前方法名稱 $this->assign(array( 'con'=>$con, 'action'=>$action, )); $rules=$con.'/'.$action; //組合 控制器/方法 $auth=new Auth(); //實例化auth類 $notCheck=array('Index/index'); //都可以訪問的頁面 if(session('uid')!=1){ //不是超級管理員才進行權限判斷 if(!in_array($rules,$notCheck)){ // 是否在開放權限里面 if(!$auth->check($rules,session('uid'))){ // 第一個參數 控制/方法 第二個參數:當前登陸會員的id $this->error('沒有權限','index/index'); }; } } }
最終展示;
以上是“Thinkphp5中auth權限設置以及實現的方法”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。