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
будет хэшировать пароль, прежде чем сравнивать его со значениями в базе данных.