0

私はKohanaアクティブレコードを使用しており、そのクラスを使用して、以下に説明するように同期されているusersテーブルとroles_usersテーブルでユーザー名とそのロールを追加しました。

これらの値をDBに手動で追加しました。

mysql> select *from users;
+----+-------------+----------+----------+--------+------------+
| id | email       | username | password | logins | last_login |
+----+-------------+----------+----------+--------+------------+
|  1 | abc@abc.com | Tito     | password |    123 |       1234 |
+----+-------------+----------+----------+--------+------------+
1 row in set (0.03 sec)

mysql> select * from roles_users;
+---------+---------+
| user_id | role_id |
+---------+---------+
|       1 |       1 |
+---------+---------+
1 row in set (0.03 sec)

// This table and its data are there from default database
mysql> select * from roles;
+----+-------+------------------------------------------------------+
| id | name  | description                                          |
+----+-------+------------------------------------------------------+
|  1 | login | Login privileges, granted after account confirmation |
|  2 | admin | Administrative user, has access to everything.       |
+----+-------+------------------------------------------------------+
2 rows in set (0.01 sec)

下記のコードを使用してログインすると、falseが返されます。

$post =  Auth::instance()->login("Tito", "password");

私がしなければならないことを教えてもらえますか?

また、auth、database、ORMモジュールはコメントされていません。

auth.phpファイルのコンテキストはapplication/config/auth.phpからのものです。

return array(

'driver'       => 'file',
'hash_method'  => 'sha256',
'hash_key'     => 'Somebiglonghaskeyofmixedcharacters102345567709',
'lifetime'     => 1209600,
'session_type' => Session::$default,
'session_key'  => 'auth_user',

// Username/password combinations for the Auth File driver
'users' => array(
    // 'admin' => 'b3154acf3a344170077d11bdb5fff31532f679a1919e716a02',
),

);
4

1 に答える 1

0

テーブルにパスワードを手動で追加しましたか?テーブルにパスを追加する前に、$ auth-> hash($ password)を使用しましたか?kohana login methodにログインしようとしているときは、ハッシュ化されたパスワードを作成してください。このため、ログインできません(password!= hash(password))

protected function _login($user, $password, $remember)
{

     ......

    if (is_string($password))
    {
        // Create a hashed password
        $password = $this->hash($password);
    } 
     ......
}
于 2013-02-21T11:24:09.440 に答える