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...