3

我在模块加载器中取消注释以加载身份验证,但我不明白的是如何告诉身份验证模块它应该使用哪个表的哪些字段来进行身份验证?我也没有在 Kohana 3 的用户指南中找到它,因为我发现 auth 模块的用户指南不存在。

所以请告诉是否有人已经在使用它。如果它使用某些表的一些默认字段,那么我该如何修改它?

感谢您阅读我的问题并努力回答。

4

2 回答 2

8

以下是适合您的步骤

  • 取消注释Authbootstrap.php 中的模块(您已经完成了)
  • ORM Module,是的,ORM Module你会发现auth-schema-mysql.sql& auth-schema-postgresql.sql。使用你需要的那个。
  • 根据需要配置配置文件auth.php。下面是我正在使用的配置。

    <?php defined('SYSPATH') or die('No direct access allowed.');
    return array(
        'driver'       => 'ORM',
        'hash_method'  => 'sha256',
        'hash_key'     => "ica_hash_key",
        'lifetime'     => Date::MINUTE * 30,
        'session_type' => 'database',
        'session_key'  => 'auth_user',
    );
    
  • 设置Cookie::$saltbootstrap.php. 在你的bootstrap.php.

    Cookie::$salt = 'YourSecretCookieSalt';
    
  • 您已完成Auth module配置;)


由于您已经配置了 auth 模块,显然您已经执行了 sql 脚本。您将在数据库中创建users, roles, roles_users&users_tokens表。

现在您可以users通过添加更多列来更改表格。当您使用ORM时,Model_User已经为您准备好了,这是一个ORM:)

所以这应该是全部,我相信。

于 2011-11-09T20:11:58.020 回答
1

Auth ORM 驱动程序的 MySQL 和 PostGreSQL 数据库模式都可以在 ORM 模块中找到。但请确保密码字段的长度对于您选择的散列算法是正确的。默认sha256应该是64,sha512应该是128,md5应该是32,sha1应该是40等等。

我想如果您真的想更改表字段,您可以重载 __get() 和 __set() 方法。或者您可以创建一个数据库视图,但这可能会给插入和更新查询带来问题。或者试试Wouter 的 A1 模块,它可以让你更改它使用的列名。

于 2011-11-07T20:37:30.533 回答