Thinkphp 3 2 下的auth許可權認證

2021-08-08 14:55:43 字數 3096 閱讀 1749

auth 認證相對於rbac來說,更加靈活方便,防止後面忘記來做做記錄。

首先需要建立表 4張

1、auth_rule

它是所有需要認證的許可權點集合,需要把認證的許可權記錄到資料庫。

drop table if exists `hskj_auth_rule`;

create table `hskj_auth_rule` (

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

`name` varchar(255) not null default '',

`title` varchar(255) not null default '',

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

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

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

`add_time` datetime default null,

`is_top` tinyint(1) default null,

`pid` tinyint(4) default null,

primary key (`id`),

unique key `name` (`name`)

) engine=myisam auto_increment=62 default charset=utf8;

2、auth_group角色表 該角色所擁有的許可權點,即在auth_rule中記錄的許可權點id

drop table if exists `hskj_auth_group`;

create table `hskj_auth_group` (

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

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

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

`rules` varchar(10000) not null default '',

primary key (`id`)

) engine=myisam auto_increment=5 default charset=utf8;

3、user 使用者表(這個就不用貼出來了吧)

4、auth_group_access 使用者和角色中間表 它記錄該使用者對應的角色 (可以有多個角色,此處我的使用者只設定了乙個角色)

drop table if exists `hskj_auth_group_access`;

create table `hskj_auth_group_access` (

`uid` mediumint(8) unsigned not null,

`group_id` mediumint(8) unsigned not null,

primary key (`uid`),

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

key `uid` (`uid`),

key `group_id` (`group_id`)

) engine=myisam default charset=utf8;

thinkphp config 配置

'auth_config'=>array(
'auth_on' => true, //認證開關
'auth_type' => 1, // 認證方式,1為時時認證;2為登入認證。
'auth_group' => 'hskj_auth_group', //使用者組表
'auth_group_access' => 'hskj_auth_group_access', //使用者與使用者組關係表
'auth_rule' => 'hskj_auth_rule', //許可權表
'auth_user' => 'hskj_user'//使用者表
),

需要有個基類控制器裡面加上判斷許可權點條件(我加入了模組判斷,即home/index/index)

if(!$auth->check(module_name.'/'.controller_name.'/'.action_name,session('uid')))

session('uid')  是登入之後記錄的使用者id

ThinkPHP3 2 驗證隨記

自動完成 靜態方式 在模型類裡面通過 auto屬性定義處理規則。動態方式 使用模型類的auto方法動態建立自動處理規則。自動驗證 靜態方式 在模型類裡面通過 validate屬性定義驗證規則。動態方式 使用模型類的validate方法動態建立自動驗證規則。定義格式為 array array 驗證欄位...

THINKPHP3 2命名空間

thinkphp3.2命名空間 3.2版本全面採用命名空間方式定義和載入類庫檔案,有效的解決多個模組之間的衝突問題,並且實現了更加高效的類庫自動載入機制。由於新版完全採用了命名空間的特性,因此只需要給類庫正確定義所在的命名空間,而命名空間的路徑與類庫檔案的目錄一致,那麼就可以實現類的自動載入。例如,...

ThinkPHP3 2 搭載環境

thinkphp是乙個快速 簡單的基於mvc和物件導向的輕量級php開發框架 預設情況下當你執行index.php時只有home模組,如果你需要建立其他模組時需要在入口檔案 index.php 中定義 define bind module admin 繫結入口到admin模組訪問 bind modu...