Laravel的bcrypt更改了密码,但随后我无法登录

时间:2018-10-09 15:28:32

标签: laravel bcrypt

我有一个PHP / Laravel脚本,允许用户更改密码:

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

但是更改密码后,用户将无法使用新密码重新登录。 我正在使用Laravel 5.3,使用bcrypt时没有收到任何警告,所以我不确定发生了什么。

1 个答案:

答案 0 :(得分:0)

首先,请看一下我的代码:

$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用户。在用户模型内部,我有这个:

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

这是Laravel变异子。当我在模型上使用save()方法时,mutator会激活并加密密码。因此,我的问题是我两次加密了密码。如果程序员不了解,带有增幅器的Laravel模型可能会引起问题。