Thinkphp5中auth權(quán)限設(shè)置以及實(shí)現(xiàn)的方法

這篇文章主要介紹Thinkphp5中auth權(quán)限設(shè)置以及實(shí)現(xiàn)的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

10余年的鄆城網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整鄆城建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“鄆城網(wǎng)站設(shè)計(jì)”,“鄆城網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

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(排序),如下圖

Thinkphp5中auth權(quán)限設(shè)置以及實(shí)現(xiàn)的方法

4,首先 自己創(chuàng)建管理員表,比如叫admin表,增刪改查 自己去正常設(shè)計(jì),group字段為所屬用戶組

Thinkphp5中auth權(quán)限設(shè)置以及實(shí)現(xiàn)的方法

5.auth_group用戶組的 增刪改查 也自己去制作一下,id,用戶組名稱,狀態(tài)(開(kāi)啟,或者關(guān)閉),規(guī)則(所對(duì)應(yīng)的是規(guī)則表的id)

Thinkphp5中auth權(quán)限設(shè)置以及實(shí)現(xiàn)的方法

6.auth_rule規(guī)則表 增刪改查 也自己去制作一下,id,name(控制器/方法),title(規(guī)則名稱 )  status狀態(tài)(開(kāi)啟,或者關(guān)閉),

Thinkphp5中auth權(quán)限設(shè)置以及實(shí)現(xiàn)的方法

7. 在添加用戶的時(shí)候 給用戶選擇 所屬用戶組, uid(對(duì)應(yīng)的是用戶id)   group_id(對(duì)應(yīng)的是用戶所屬用戶組的id),這樣就關(guān)聯(lián)起來(lái)了

Thinkphp5中auth權(quán)限設(shè)置以及實(shí)現(xià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');  //都可以訪問(wèn)的頁(yè)面
       if(session('uid')!=1){  //不是超級(jí)管理員才進(jìn)行權(quán)限判斷
          if(!in_array($rules,$notCheck)){  // 是否在開(kāi)放權(quán)限里面
              if(!$auth->check($rules,session('uid'))){   // 第一個(gè)參數(shù)  控制/方法   第二個(gè)參數(shù):當(dāng)前登陸會(huì)員的id
                 $this->error('沒(méi)有權(quán)限','index/index');
               };
           }
        }




       }

最終展示;

Thinkphp5中auth權(quán)限設(shè)置以及實(shí)現(xiàn)的方法

Thinkphp5中auth權(quán)限設(shè)置以及實(shí)現(xiàn)的方法

Thinkphp5中auth權(quán)限設(shè)置以及實(shí)現(xiàn)的方法

以上是“Thinkphp5中auth權(quán)限設(shè)置以及實(shí)現(xiàn)的方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當(dāng)前名稱:Thinkphp5中auth權(quán)限設(shè)置以及實(shí)現(xiàn)的方法
文章轉(zhuǎn)載:http://muchs.cn/article14/ijdgge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、外貿(mào)建站面包屑導(dǎo)航、網(wǎng)站設(shè)計(jì)、搜索引擎優(yōu)化、定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化