我有一个PHP / Laravel脚本,允许用户更改密码:
$obj_user->password = bcrypt($post['password']);
但是更改密码后,用户将无法使用新密码重新登录。 我正在使用Laravel 5.3,使用bcrypt时没有收到任何警告,所以我不确定发生了什么。
答案 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模型可能会引起问题。