1

Kohana 2.3.4 を使用していますが、認証モジュールを動作させることができません。

次のようにユーザーを追加しています。

$user = ORM::factory('user');
$user->username = 'admin';
$this->auth = Auth::instance();   
$user->email    = 'admin@example.com';
$user->password = 'secret';

$user->add(ORM::factory('role', 'login'));
$user->save();

問題は、users テーブルを調べると、パスワードが平文になっていることです。auth_user_model が呼び出されていないようです。

私のユーザーモデルはドキュメントからのものです。すなわち

// and, in models/user.php
class User_Model extends ORM {
    protected $has_and_belongs_to_many = array('roles');

    public function unique_key($id = NULL)
    {
        if ( ! empty($id) AND is_string($id) AND ! ctype_digit($id) )
        {
            return 'username';
        }

        return parent::unique_key($id);
    }

}

詳しく調べてみると、ファイル Auth_User_Model が呼び出されていません。私はそれを破損し、苦情はありませんでした。

だから私は変わった

class User_Model extends Auth_User_Model {

そして今、パスワードをハッシュしています。これは正しい使用方法ですか?これについてこれ以上のコメントが見られないことに驚いていますか?に

class User_Model extends ORM {
4

1 に答える 1

1

はい、それが ORM Auth ドライバーでユーザー モデルを使用する適切な方法です。独自のモデルで __set() をオーバーロードして、auth_user_model のようにすることもできます。

于 2010-02-09T19:38:03.217 に答える