RBAC英文全稱(Role-Based Access Controller)即基於角色的權限訪問控制,簡單來講,一個用戶可以擁有若干角色,每一個角色擁有若干權限。這樣,就構造成“用戶-角色-權限”的授權模型。相比於傳統權限管理方式(如早期的ecshop,是將權限與用戶直接掛鈎),RBAC有以下優點:1、權限標准便於統一 2、權限分配方式簡單易維護。
一般來講RBAC有兩種體現方式:基於表結構的RBAC權限管理、基於文件結構的RBAC權限管理。下面就以基於文件結構的方式,簡單實現權限的管理。
一、創建用戶表sp_user
二、在ThinkPHP應用級配置文件config.php中定義權限數據
三、在中間控制器CommonController中編寫RBAC實現代碼
簡單流程為:定義用戶組的權限信息 -->根據角色id獲取當前用戶權限-->獲取當前用戶訪問路由的控制器名和方法名-->判斷當前要訪問的控制器名和方法名是否在當前用戶權限數組中。