ThinkPHP5下Auth許可權認證

2021-10-06 02:15:05 字數 3341 閱讀 8395

admin管理員:表裡有admin1 admin2 adimn 3個管理員

auth _group 管理員組:表裡有 超級管理員 普通管理員 文章發布管理員

auth _rule 管理規則:文章新增 文章刪除 文章修改 文章檢視

auth _group_access :裡面只有兩個字段,uid(哪個使用者),gid(屬於哪乙個組)

– auth_rule,規則表,

– id:主鍵,name:規則唯一標識, title:規則中文名稱 status 狀態:為1正常,為0禁用,condition:規則表示式,為空表示存在就驗證,不為空表示按照條件驗證,rules該使用者擁有哪些許可權,要和auth_rule表對應獲取許可權

create table ` auth_rule` (

`id` mediumint(8) unsigned not null auto_increment,

`name` char(80) not null default '', #許可權的位址,如「admin/index」

`title` char(20) not null default '', #許可權名稱,如「新增文章」

`type` tinyint(1) not null default '1',

`status` tinyint(1) not null default '1',

`condition` char(100) not null default '', # 規則附件條件,滿足附加條件的規則,才認為是有效的規則

primary key (`id`),

unique key `name` (`name`)

) engine=myisam default charset=utf8;

– auth_group 使用者組表,

– id:主鍵, title:使用者組中文名稱, rules:使用者組擁有的規則id,這個id就是auth_id的主鍵id.。 多個規則","隔開,status 狀態:為1正常,為0禁用

create table ` auth_group` (

`id` mediumint(8) unsigned not null auto_increment,

`title` char(100) not null default '',

`status` tinyint(1) not null default '1',

`rules` char(80) not null default '',

primary key (`id`)

) engine=myisam default charset=utf8;

– auth_group_access 使用者組明細表

– uid:使用者id,group_id:使用者組id

create table `auth_group_access` (

`uid` mediumint(8) unsigned not null,

`group_id` mediumint(8) unsigned not null,

unique key `uid_group_id` (`uid`,`group_id`),

key `uid` (`uid`),

key `group_id` (`group_id`)

) engine=myisam default charset=utf8;

許可權專案

內容1內容2

內容3內容412

345admin

1 admin

2 admin

3 admin

4 admin

auth_group_access

uid1 groud_id 1,2,3,4

uid2 group_id 2,3,4

udi3 group_id 3,4

uid4 group_id 4

auth_group

1超級管理員

2普通管理員

3文章管理員

4審核管理員

auth_rule

1 art/all

2 art/sec

3 art/add

4 art/edit

管理許可權

auth_group_access表,負責將不同的使用者對應著不同的許可權

使用者組列表

auth_group_access表,負責新增使用者組及許可權

許可權列表

auth_rule表,負責新增相關許可權

使用者組許可權新增

此許可權新增全部是往auth_group裡面新增使用者角色,以及他們主要負責的哪些許可權。具體三張表代表不同字段許可權可以瀏覽前面針對資料表做的詳細解釋。

新增使用者組許可權內容

使用者名稱:

使用者組狀態:

使用者組許可權分配:

auth規則表許可權

如何設定level?

在嘗試選擇選單的時候選擇許可權分級,在level欄位裡的資料+1再賦值給level 後提交表單,獲取到的不僅有level無限級選單,還有該許可權下的主鍵id,也就是我們的pid。

有關具體level設計,請檢視無限級分類操作。

我以為auth許可權的使用很難,但是學了之後就發現僅僅是一句話的事,例項化一下auth類,在呼叫check()方法就ok了。

auth許可權原本是thinkphp3裡面的內容,在thinkphp5重大公升級後去除了這一功能,作為擴充套件類在thinkphp5中通過composer使用,但是我直接把auth類拿過來用了,經測試沒有錯誤。

為什麼會學習auth類?在**建設中難免不了的會出現許可權劃分問題,在考慮此問題上焦頭爛額,迫切需要方式方法解決好該問題。

學習auth類之前建議先學好無限級分類,這樣可以更好的把許可權分級弄清楚。

在清楚了解auth三張表的關係之後開始準備使用auth類劃分許可權。

建表

所有許可權建立在三張表之中

建立common類

放在common.php公共類的構造方法中,用於繼承。

use think\controller;

use think\request;

use ***\auth;

class common extends controller

}}很簡單,是自己考慮複雜了!!!

thinkphp5中使用auth許可權控制

首先要建立三個表 drop table if exists think auth rule create table think auth rule id mediumint 8 unsigned not null auto increment,name char 80 not null defau...

Thinkphp5 Auth許可權認證

auth類在thinkphp類庫里是原本就有的,thinkphp5裡沒了,這裡是將其修改為thinkphp5適用 auth類的特點是 許可權認證類 功能特性 1,是對規則進行認證,不是對節點進行認證。使用者可以把節點當作規則名稱實現對節點進行認證。auth new auth auth check 規...

ThinkPHP5使用快取

cache 使用復合快取型別 type complex 預設使用的快取 default 驅動方式 type file 在這設定換人的快取方式 快取儲存目錄 path cache path,檔案快取 file 驅動方式 type file 設定不同的快取儲存目錄 path runtime path f...