Я хочу использовать аутентификацию в laravel 4 Я изменил имя таблицы и mobel
когда пользователь регистрируется, у меня есть пароль и его сохранение, хэш:
$password = Hash::make(Input::get('password'));
а затем, когда логин пользователя я хочу, чтобы он аутентифицировал его / ее в первую очередь. Я делаю это вот так:
if (Auth::attempt(array('username' => Input::get('usernaem'), 'password' => Hash::make(Input::get('password'))))) { return Redirect::intended('dashboard'); }
и что никогда не бывает успеха. Я попытался отладить код, и кажется, что функция Hask::make
всегда дает другой результат.
Я использую хорошие методы проверки подлинности? каково решение этой хэш-функции?
Большое спасибо
Во-первых, не используйте Hash
при попытке, это должно быть так:
Auth::attempt(array('username' => Input::get('username'), 'password' => Input::get('password')));
Поскольку вы храните пароль в своей базе данных вручную, создавая хэш с помощью Hash::make()
а затем вставляете его в базу данных. Так что это может быть проблемой. Повторно введите пароль в базу данных и вставьте его прагматично, а затем повторите попытку.
Кроме того, вы можете проверить пароль, используя Hash::check('password', $hashedPassword)
. Подробнее о безопасности на сайте Laravel
. Используйте миграцию для заполнения поддельных данных, не вручную помещая какие-либо данные в базу данных.
Не хешируйте пароль в функции auth :: попытка (), код должен выглядеть следующим образом:
Auth::attempt(array('username' => Input::get('username'), 'password' => Input::get('password')));
Функция auth :: попытка () будет хешировать пароль, а затем проверить, совпадает ли он с тем, который хранится в базе данных