Auth::instance возвращает false при входе пользователя в

Я создаю нового пользователя и затем пытаюсь войти в него, пользователь сохраняется в базе данных, и его роль также сохраняется. Хотя я никогда не нажимал на перенаправление, чтобы сказать, что они вошли в систему. Я отладил вход Auth::Instance->, и я возвращаюсь FALSE

public function action_index()
{

    $view = View::factory('index/home');

    if( Request::current()->post() ):
        $post = $_POST;

        try {
            $user = ORM::factory('User');

            $user->username = $post['username'];
            $user->password = $post["password"];
            $user->email = $post["email"];
            $user->logins = +1;
            $user->save();


            if ($user->saved() ):
                $user->add('roles', ORM::factory('Role')->where('name', '=', 'login')->find());


                $logged_in = Auth::instance()->login($post['username'], $post['password']); 

                echo Debug::vars($logged_in); exit;                 

                if ($logged_in):
                    HTTP::redirect("/dashboard/");  
                endif;

            endif;  

        } catch (Exception $e) {
            echo Debug::vars($e); exit;
        }
    endif;

    $index_page = $view->render();  
    $this->response->body($index_page);         
}

конфиг

return array(

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

);

Может ли быть что-то не так с паролем во время хеширования?

1 ответ

Вы храните пароль в виде открытого текста в базе данных (если вы не применяете какой-либо фильтр). Попробуйте следующее:

$user->password = Auth::instance()->hash($post["password"]);

Это обеспечит хеширование пароля перед хранением. Auth будет хэшировать пароль, прежде чем сравнивать его со значениями в базе данных.

Другие вопросы по тегам