[Thinkphp5 Auth權(quán)限認(rèn)證]

auth類在thinkphp類庫里是原本就有的擦囊,thinkphp5里沒了馆类,這里是將其修改為thinkphp5適用
auth類的特點(diǎn)是
/**
* 權(quán)限認(rèn)證類
* 功能特性:
* 1混聊,是對規(guī)則進(jìn)行認(rèn)證,不是對節(jié)點(diǎn)進(jìn)行認(rèn)證乾巧。用戶可以把節(jié)點(diǎn)當(dāng)作規(guī)則名稱實(shí)現(xiàn)對節(jié)點(diǎn)進(jìn)行認(rèn)證句喜。
* $auth=new Auth(); $auth->check('規(guī)則名稱','用戶id')
* 2,可以同時對多條規(guī)則進(jìn)行認(rèn)證沟于,并設(shè)置多條規(guī)則的關(guān)系(or或者and)
* $auth=new Auth(); $auth->check('規(guī)則1,規(guī)則2','用戶id','and')
* 第三個參數(shù)為and時表示咳胃,用戶需要同時具有規(guī)則1和規(guī)則2的權(quán)限。 當(dāng)?shù)谌齻€參數(shù)為or時旷太,表示用戶值需要具備其中一個條件即可展懈。默認(rèn)為or
* 3,一個用戶可以屬于多個用戶組(think_auth_group_access表 定義了用戶所屬用戶組)供璧。我們需要設(shè)置每個用戶組擁有哪些規(guī)則(think_auth_group 定義了用戶組權(quán)限)
*
* 4存崖,支持規(guī)則表達(dá)式。
* 在think_auth_rule 表中定義一條規(guī)則時睡毒,如果type為1来惧, condition字段就可以定義規(guī)則表達(dá)式。 如定義{score}>5 and {score}<100 表示用戶的分?jǐn)?shù)在5-100之間時這條規(guī)則才會通過吕嘀。
*/

接著導(dǎo)入數(shù)據(jù)庫表

//數(shù)據(jù)庫
/*


-- think_auth_rule违寞,規(guī)則表贞瞒,
-- id:主鍵,name:規(guī)則唯一標(biāo)識, title:規(guī)則中文名稱 status 狀態(tài):為1正常趁曼,為0禁用军浆,condition:規(guī)則表達(dá)式,為空表示存在就驗(yàn)證挡闰,不為空表示按照條件驗(yàn)證


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 DEFAULT '',
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 '', # 規(guī)則附件條件,滿足附加條件的規(guī)則,才認(rèn)為是有效的規(guī)則
PRIMARY KEY (id),
UNIQUE KEY name (name)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


-- think_auth_group 用戶組表乒融,
-- id:主鍵, title:用戶組中文名稱摄悯, rules:用戶組擁有的規(guī)則id赞季, 多個規(guī)則","隔開,status 狀態(tài):為1正常奢驯,為0禁用


DROP TABLE IF EXISTS think_auth_group;
CREATE TABLE think_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;


-- think_auth_group_access 用戶組明細(xì)表
-- uid:用戶id申钩,group_id:用戶組id


DROP TABLE IF EXISTS think_auth_group_access;
CREATE TABLE think_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;
*/

接著在需要權(quán)限驗(yàn)證控制器里創(chuàng)建_initialize方法進(jìn)行權(quán)限認(rèn)證

//權(quán)限認(rèn)證
$auth = new \Auth\Auth();
$request = Request::instance();
if (!$auth->check($request->module() . '-' . $request->controller() . '-' . $request->action(), UID)) {// 第一個參數(shù)是規(guī)則名稱,第二個參數(shù)是用戶UID
/* return array('status'=>'error','msg'=>'有權(quán)限!');*/
$this->error('你沒有權(quán)限');
}

其中$request->module();$request->controller();$request->action();分別問獲取模塊名瘪阁、控制器名撒遣、操作名可以在這里下載修改好的類

thinkphp5auth類下載地址下載好后放入extend擴(kuò)展里Auth文件夾下

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市管跺,隨后出現(xiàn)的幾起案子义黎,更是在濱河造成了極大的恐慌,老刑警劉巖豁跑,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件廉涕,死亡現(xiàn)場離奇詭異,居然都是意外死亡艇拍,警方通過查閱死者的電腦和手機(jī)狐蜕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來淑倾,“玉大人馏鹤,你說我怎么就攤上這事〗慷撸” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵勃救,是天一觀的道長碍讨。 經(jīng)常有香客問我,道長蒙秒,這世上最難降的妖魔是什么勃黍? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮晕讲,結(jié)果婚禮上覆获,老公的妹妹穿的比我還像新娘马澈。我一直安慰自己,他們只是感情好弄息,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布痊班。 她就那樣靜靜地躺著,像睡著了一般摹量。 火紅的嫁衣襯著肌膚如雪涤伐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天缨称,我揣著相機(jī)與錄音凝果,去河邊找鬼。 笑死睦尽,一個胖子當(dāng)著我的面吹牛器净,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播当凡,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼山害,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了宁玫?” 一聲冷哼從身側(cè)響起粗恢,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎欧瘪,沒想到半個月后眷射,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡佛掖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年妖碉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片芥被。...
    茶點(diǎn)故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡欧宜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拴魄,到底是詐尸還是另有隱情冗茸,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布匹中,位于F島的核電站夏漱,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏顶捷。R本人自食惡果不足惜挂绰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望服赎。 院中可真熱鬧葵蒂,春花似錦交播、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至荔仁,卻和暖如春伍宦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背乏梁。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工次洼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人遇骑。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓卖毁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親落萎。 傳聞我的和親對象是個殘疾皇子亥啦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容