您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何在ThinkPHP中使用RBAC類,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
1.RBAC::authenticate();
用于在用戶表中查找表單提交的用戶名的數據,實質上就是一條用戶表查尋語句:
復制代碼 代碼如下:
return M(modle)->where(array)->find();
這個操作有兩個參數
a.array()數組的寫法及作用和表查尋數組一樣:
復制代碼 代碼如下:
array('字段'=>'值','字段'=>array('條件','值'));
b.model就是表名,默認是配制參數
復制代碼 代碼如下:
C('USER_AUTH_MODEL');
返回值是一條查詢結果以一維數組承顯。
注:它就是一個針對用戶表的單條記錄查尋方法,我們可以不用它,直接用查尋語句。
2.RBAC::saveAccessList();
將用戶可以操控的應用名(組名),控制器名,操作名以一個三維數組的形勢寫入session。
參數是用戶id,一般我們在用戶登陸驗證通過后,會將用戶id寫入session中的
復制代碼 代碼如下:
C('USER_AUTH_KEY');
本方法中默認會拿$_SESSION(C('USER_AUTH_KEY'))這個參數;
第二類:放在公共控制器中(所有參加權限驗證的控制器類全都要繼于成這個類)
3.RBAC::AccessDecision();
用來判斷當前用戶對當前操控是否有權限,參數默認是應用名APP_NAME,如果是分組的模式,就得傳入分組名GROUP_NAME
這里面調用了一個方法
復制代碼 代碼如下:
RBAC::checkAccess();
用于驗證當前控制器或操作是否參加本次判斷.
注:有四個配制參數,需要我們寫兩個。
需要驗證控制器: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();
用來判斷用戶是否登陸。
注:登陸后的首頁顯示這個操作必須參加驗證,所以每個角色都得加入這個操作的權限。
也可以不用這個方法,直接判斷$_SESSION[C('USER_AUTH_KEY')]是否存在,不存在就跳轉到登陸界面這樣就可以讓登陸后首頁顯示這個操作不參加驗證。
關于如何在ThinkPHP中使用RBAC類就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。