【发布时间】:2018-09-09 14:52:06
【问题描述】:
我有几个没有电子邮件和密码的用户,我想通过添加来自freemail 列的电子邮件和来自随机字符串的setup password 来更新用户。
这是我的示例代码:
public function updateUserProfil()
{
//find list user to be update(juste one to test)
$users = User::where('isfree', '1')->first();
//Random string generate
$motdepasse = str_random(6);
//find user
$updateUser= User::find($users->id);
//setup fields
$updateUser->email = $users->freemail;
$updateUser->remember_token = str_random(10);
$updateUser->motdepasse = $motdepasse;
$updateUser->password = bcrypt($motdepasse);
$updateUser->isfree = 0;
$updateUser->save();
}
问题是当我尝试连接email($users->freemail) 和password($motdepasse) 时,这不是加密的随机字符串,我得到错误:
我的凭据无效
我错过了什么?
【问题讨论】:
-
你检查
$updateUser->save()是否返回true,这样你就可以确定数据已经更新成功了吗?顺便说一句,您应该使用Hash::make($password)而不是bcrypt($password)以保持一致性,以防将来散列算法发生变化(在v5.6中发生,但它是可配置的)。 -
是的,保存很好,我得到哈希字符串和电子邮件,但似乎与 Auth 加密不对应
标签: laravel authentication password-hash