ThinkPHP中RBAC類的四種用法分析
本文實例講述了ThinkPHP中RBAC類的四種用法。分享給大家供大家參考。具體方法如下:
第一類:放在登陸控制器的登陸操作中
1.RBAC::authenticate();
用于在用戶表中查找表單提交的用戶名的數(shù)據(jù),實質(zhì)上就是一條用戶表查尋語句:
a.array()數(shù)組的寫法及作用和表查尋數(shù)組一樣:
b.model就是表名,默認是配制參數(shù)
注:它就是一個針對用戶表的單條記錄查尋方法,我們可以不用它,直接用查尋語句。
2.RBAC::saveAccessList();
將用戶可以操控的應用名(組名),控制器名,操作名以一個三維數(shù)組的形勢寫入session。
參數(shù)是用戶id,一般我們在用戶登陸驗證通過后,會將用戶id寫入session中的
本方法中默認會拿$_SESSION(C('USER_AUTH_KEY'))這個參數(shù);
第二類:放在公共控制器中(所有參加權(quán)限驗證的控制器類全都要繼于成這個類)
3.RBAC::AccessDecision();
用來判斷當前用戶對當前操控是否有權(quán)限,參數(shù)默認是應用名APP_NAME,如果是分組的模式,就得傳入分組名GROUP_NAME
這里面調(diào)用了一個方法
注:有四個配制參數(shù),需要我們寫兩個。
需要驗證控制器:REQUIRE_AUTH_MODULE 需要驗證操作:REQUIRE_AUTH_ACTION
不需要驗證控制器:NOT_AUTH_MODULE 不需要驗證操作:NOT_AUTH_ACTION
如果全寫需要:在REQUIRE_AUTH_ACTION中寫操作的同時必須在REQUIRE_AUTH_MODULE寫其所屬控制器。
如果全寫不需要:在NOT_AUTH_MODULE中寫了控制器,其控制器中的所有方法都將不需要驗證。
如果獨寫NOT_AUTH_ACTION中的操作,則需要注意操作名重名的問題。
4.RBAC::checkLogin();
用來判斷用戶是否登陸。
注:登陸后的首頁顯示這個操作必須參加驗證,所以每個角色都得加入這個操作的權(quán)限。
也可以不用這個方法,直接判斷$_SESSION[C('USER_AUTH_KEY')]是否存在,不存在就跳轉(zhuǎn)到登陸界面這樣就可以讓登陸后首頁顯示這個操作不參加驗證。
希望本文所述對大家的ThinkPHP框架程序設計有所幫助。
相關(guān)文章
php讀取mysql亂碼,用set names XXX解決的原理分享
解決亂碼的方法,我們經(jīng)常使用“set names utf8”,那么為什么加上這句代碼就可以解決了呢?下面跟著我一起來深入set names utf8的內(nèi)部執(zhí)行原理2011-12-12PHP IDE PHPStorm配置支持友好Laravel代碼提示方法
這篇文章主要介紹了PHP IDE PHPStorm配置支持友好Laravel代碼提示方法,重點配置已經(jīng)加紅提示,需要的朋友可以參考下2015-05-05php + ajax 實現(xiàn)的寫入數(shù)據(jù)庫操作簡單示例
這篇文章主要介紹了php + ajax 實現(xiàn)的寫入數(shù)據(jù)庫操作,結(jié)合實例形式分析了php + ajax 寫入數(shù)據(jù)庫基本原理、操作技巧與相關(guān)使用注意事項,需要的朋友可以參考下2020-05-05