首頁  >  文章  >  php框架  >  Thinkphp5中auth權限設定以及實現

Thinkphp5中auth權限設定以及實現

藏色散人
藏色散人轉載
2020-07-27 13:23:414267瀏覽

下面由thinkphp框架教學欄位來介紹Thinkphp5中auth權限設定以及實現,希望對需要的朋友有幫助!

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(&#39;uname&#39;)){
          $this->error(&#39;请先登陆系统!&#39;,&#39;login/index&#39;);
        }


        //获得当前页面的控制器 / 方法
       $request=Request::instance();
       $moudle=$request->module(); //获取当前控制器名称
       $con=$request->controller(); //获取当前控制器名称
       $action=$request->action();  //获取当前方法名称
       $this->assign(array(
               &#39;con&#39;=>$con,
               &#39;action&#39;=>$action,
       ));

       $rules=$con.&#39;/&#39;.$action;  //组合  控制器/方法
       $auth=new Auth(); //实例化auth类
       $notCheck=array(&#39;Index/index&#39;);  //都可以访问的页面
       if(session(&#39;uid&#39;)!=1){  //不是超级管理员才进行权限判断
          if(!in_array($rules,$notCheck)){  // 是否在开放权限里面
              if(!$auth->check($rules,session(&#39;uid&#39;))){   // 第一个参数  控制/方法   第二个参数:当前登陆会员的id
                 $this->error(&#39;没有权限&#39;,&#39;index/index&#39;);
               };
           }
        }




       }

最終展示;

############################### ################ ####

以上是Thinkphp5中auth權限設定以及實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除