Bcrypt Laravel меняет пароли, но я не могу войти - PullRequest
0 голосов
/ 09 октября 2018

У меня есть скрипт PHP / Laravel, который позволяет пользователю изменять свой пароль:

$obj_user->password = bcrypt($post['password']);

Но после изменения пароля пользователь не может войти в систему с новым паролем.Я использую Laravel 5.3, и я не получаю никаких предупреждений, когда использую bcrypt, поэтому я не уверен в том, что происходит.

1 Ответ

0 голосов
/ 24 декабря 2018

Хорошо, прежде всего, посмотрите на мой код:

$obj_user = User::find($user_data['id']);
$obj_user->password = $post['password'];//Hash::make($post['password']);   
$obj_user->save();

Обратите внимание на две вещи: (1) Я использую модель Laravel для получения данных пользователя.(2) И Hash :: make недоступен.Я больше не использую его, но все равно смог зашифровать пароль.

Эта проблема в прошлом затрагивала пользователей Laravel.Внутри модели User у меня есть это:

public function setPasswordAttribute($password)
{ $this->attributes['password'] = Hash::make($password); }

Это мутатор Laravel.Когда я использую метод save () на модели, мутатор активирует и шифрует пароль.Поэтому моя проблема заключалась в том, что я дважды шифровал свой пароль.Модели Laravel с мутаторами могут вызвать проблемы, если программист не знает о них.

...