0

我正在开发一个项目,我正在尝试为客户实施针对外部用户群的身份验证,这似乎工作正常。

最近增加了另一个要求,即某些人(不在上述基地中)需要能够编辑部分页面内容。首先想到的是为这几个编辑器启用单独的 ORM/File Auth 驱动程序,以便能够分别对它们进行身份验证。

在 Kohana 3.2 中是否可以同时使用两个 Auth 驱动程序?

4

2 回答 2

1

Kohana 的 Auth 模块本身不支持使用两个驱动程序。

但是,您可以非常轻松地自己实现一个新的驱动程序。您可以按照说明通过复制现有驱动程序并修改它来创建新驱动程序,此处: http: //kohanaframework.org/3.3/guide/auth/driver/develop

简单的做法是将以下逻辑放入您的_login方法中:

  1. 检查外部用户数据库的有效登录
  2. 如果外部用户数据库中存在有效用户,则返回 true。
  3. 如果外部用户数据库中没有有效用户,则改为检查本地用户数据库。
  4. 如果用户存在于本地数据库中,则返回 true。
于 2012-12-13T15:12:51.347 回答
1

是的,您可以同时使用不同的驱动程序。只需创建另一个实例而不是标准单例:

// 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();

限制:

  1. 您必须使用不同的配置(driver并且session_key值必须不同)。请注意,某些设置是在类中定义的,不能通过配置更改(例如,“记住”cookie named authautologin)。
  2. 您不能共享默认的 ORM 模型 ( Model_User, Model_Token, Model_Role),因为它们的名称是硬编码的。但是可以使用 ORM 驱动程序和文件驱动程序。
于 2012-12-14T18:06:50.743 回答