## 使用
判斷權限方法
~~~
// 引入類庫
use think\wenhainan\Auth;
// 獲取auth實例
$auth = Auth::instance();
// 檢測權限
if($auth->check('show_button',1)){// 第一個參數是規則名稱,第二個參數是用戶UID
//有顯示操作按鈕的權限
}else{
//沒有顯示操作按鈕的權限
}
~~~
Auth類也可以對節點進行認證,我們只要將規則名稱,定義為節點名稱就行了。 可以在公共控制器Base中定義\_initialize方法
~~~
<?php
use think\Controller;
use think\wenhainan\Auth;
class Base extends Controller
{
public function _initialize()
{
$controller = request()->controller();
$action = request()->action();
$auth = new Auth();
if(!$auth->check($controller . '-' . $action, session('uid'))){
$this->error('你沒有權限訪問');
}
}
}
~~~
這時候我們可以在數據庫中添加的節點規則, 格式為: “控制器名稱-方法名稱”
Auth 類 還可以多個規則一起認證 如:
~~~
$auth->check('rule1,rule2',uid);
~~~
表示 認證用戶只要有rule1的權限或rule2的權限,只要有一個規則的權限,認證返回結果就為true 即認證通過。 默認多個權限的關系是 “or” 關系,也就是說多個權限中,只要有個權限通過則通過。 我們也可以定義為 “and” 關系
~~~
$auth->check('rule1,rule2',uid,'and');
~~~
第三個參數指定為"and" 表示多個規則以and關系進行認證, 這時候多個規則同時通過認證才有權限。只要一個規則沒有權限則就會返回false。
Auth認證,一個用戶可以屬于多個用戶組。 比如我們對 show\_button這個規則進行認證, 用戶A 同時屬于 用戶組1 和用戶組2 兩個用戶組 , 用戶組1 沒有show\_button 規則權限, 但如果用戶組2 有show\_button 規則權限,則一樣會權限認證通過。
~~~
$auth->getGroups(uid)
~~~
通過上面代碼,可以獲得用戶所屬的所有用戶組,方便我們在網站上面顯示。
Auth類還可以按用戶屬性進行判斷權限, 比如 按照用戶積分進行判斷, 假設我們的用戶表 (think\_members) 有字段 score 記錄了用戶積分。 我在規則表添加規則時,定義規則表的condition 字段,condition字段是規則條件,默認為空 表示沒有附加條件,用戶組中只有規則 就通過認證。 如果定義了 condition字段,用戶組中有規則不一定能通過認證,程序還會判斷是否滿足附加條件。 比如我們添加幾條規則:
> `name`字段:grade1`condition`字段:{score}<100
> `name`字段:grade2`condition`字段:{score}>100 and {score}<200
> `name`字段:grade3`condition`字段:{score}>200 and {score}<300
這里`{score}`表示`think_members`表 中字段`score`的值。
那么這時候
> $auth->check('grade1', uid) 是判斷用戶積分是不是0-100
> $auth->check('grade2', uid) 判斷用戶積分是不是在100-200
> $auth->check('grade3', uid) 判斷用戶積分是不是在200-300
- 空白目錄
- 數據表的創建
- auth _rule
- auth_group
- auth_group_access
- 權限示例
- Auth權限菜單
- Auth用戶組權限修改
- Auth用戶規則表
- Auth權限的使用
- 源碼示例
- thinkphp6auth
- 安裝與拓展
- auth
- thinkphp6.0權限擴展
- ThinkPHP3.2.3完整版中對Auth.class.php的使用
- ThinkPHP6.x中對Auth的使用[tp6-auth權限管理]
- Thinkphp6+Auth+LayuiAdmin+authtree權限管理
- 使用phpstudy安裝
- 使用寶塔安裝thinkphp
- thinkphp6 偽靜態配置(nginx和Apache)
- apiadmin安裝教程