我正在开发一个项目,我正试图对外部用户群实施身份验证,这似乎是正常工作。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