我正在開發一個項目,我正試圖對外部用戶羣實施身份驗證,這似乎是正常工作。kohana3.2中的多個Auth驅動程序
最近又增加了另一項要求,即有些人(不在上述基地中)需要能夠編輯部分頁面內容。首先想到的是爲單獨的少數編輯者啓用單獨的ORM /文件身份驗證驅動程序。
是否可以在Kohana 3.2中同時使用兩個Auth驅動程序?
我正在開發一個項目,我正試圖對外部用戶羣實施身份驗證,這似乎是正常工作。kohana3.2中的多個Auth驅動程序
最近又增加了另一項要求,即有些人(不在上述基地中)需要能夠編輯部分頁面內容。首先想到的是爲單獨的少數編輯者啓用單獨的ORM /文件身份驗證驅動程序。
是否可以在Kohana 3.2中同時使用兩個Auth驅動程序?
是的,您可以一次使用不同的驅動程序。只要創建另一個實例,而不是標準的單例:
// default Auth
$config = Kohana::$config->load('auth');
$auth = new Auth($config);
$user = $auth->get_user();
// special Auth for administration
$config2 = Kohana::$config->load('admin_auth');
$auth2 = new Auth($config2);
$admin = $auth2->get_user();
限制:
driver
和session_key
值必須不同)。請注意,某些設置是在類中定義的,不能通過配置進行更改(例如,「記住」名爲authautologin
的cookie)。Model_User
,Model_Token
,Model_Role
),因爲它們的名字是硬編碼的。但是ORM驅動程序&可以使用文件驅動程序。Kohana的Auth模塊本身不支持使用兩個驅動程序。
但是,您可以非常輕鬆地實現新驅動程序。您可以按照指示通過複製現有的驅動程序,並修改它,在這裏創建一個新的驅動程序:http://kohanaframework.org/3.3/guide/auth/driver/develop
簡單的事情將是把下面的邏輯在_login
方法:
我已經有單獨的驅動程序,所以如果你不需要同時登錄這似乎是可行的解決方案。我只會將屬性is_external添加到其getter中 - 因此客戶將無法訪問編輯器部分,反之亦然。 – bjauy
我仍在調查兩個自定義auth類的情況,它們來源於Auth並同時工作(所以在一個控制器中,您被驗證爲測試客戶,另一個作爲編輯器)。 – bjauy