下面由thinkphp框架教學欄位來介紹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權限設定以及實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!