所以我在CodeIgniter中創建我的第一個項目,我想知道是否有一種有效的方式來強制用戶限制,基於他們屬於哪個用戶組。CodeIgniter通過會話的用戶權限
此應用程序中有3個用戶組(管理員,教師和學生),每個用戶組都有自己的權限。什麼是實施這個最好的方法?
目前我只是把它放到會話變量中,幾乎在每個頁面上讀取它。有東西告訴我必須有更簡單的方法來做到這一點?
在此先感謝。
親切的問候
格倫
所以我在CodeIgniter中創建我的第一個項目,我想知道是否有一種有效的方式來強制用戶限制,基於他們屬於哪個用戶組。CodeIgniter通過會話的用戶權限
此應用程序中有3個用戶組(管理員,教師和學生),每個用戶組都有自己的權限。什麼是實施這個最好的方法?
目前我只是把它放到會話變量中,幾乎在每個頁面上讀取它。有東西告訴我必須有更簡單的方法來做到這一點?
在此先感謝。
親切的問候
格倫
用戶表中的一個簡單的組ID對於您的應用程序聽起來會很好。然後你可以像鮎魚說的那樣做,並在控制器構造函數或特定的方法本身中進行檢查。
將來實現像「權限」或「角色」或「範圍」這樣的另一個表格將允許您在應用程序內創建細粒度權限。看到這樣實現的OAuth服務器(https://github.com/alexbilbie/CodeIgniter-OAuth-2.0-Server)
function user_get($id)
{
$this->load->library('oauth_resource_server');
if (! $this->oauth_resource_server->has_scope(array('user.details', 'another.scope')))
{
// Error logic here - "access token does not have correct permission to user this API method"
}
// API code here
}
當你需要真正的微調權限,或希望當您創建的RESTful API的實現更靈活的權限,這可能是更適合的路線。對於你當前的情況,在構造函數或方法中進行通用檢查就可以了。
如果你把它放到你的控制器的構造函數,它就會叫出每一頁上,但你不必調用它每次使用方法。
在數據庫表中使用組標識。並將其存儲到會話中。並使用此組ID檢查授權和身份驗證。