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