【问题标题】:Laravel generate password and insert user in database by handLaravel 手动生成密码并在数据库中插入用户
【发布时间】: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


【解决方案1】:

您可以使用 update() 来更新行。所以你的代码必须是

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->update([
        'email'=>$users->freemail,
        'remember_token'=>str_random(10),
        'motdepasse'=>$motdepasse,
        'password'=>bcrypt($motdepasse),
        'isfree'=>0,
    ]);
}

【讨论】:

  • 嗨 Samir,问题不是更新。我在用户行中获得密码哈希字符串和电子邮件,但是当我尝试连接时,凭据仍然无效。是否有 Auth 函数来加密密码?或 bcrypt() 方法被 auth 使用?
  • “尝试连接”是什么意思?您想使用$motdepasse 中生成的密码登录帐户吗?你在使用 Laravel 的认证功能吗?或者你覆盖它们?
  • 是的,我希望用户使用 $motdepasse 中生成的密码登录帐户。我正在使用原始身份验证登录表单。
  • 你改过 $this->username() 函数了吗?默认情况下,Laravel 在登录尝试中检查用户名列。看起来一切都是对的。使用https://pastebin.com/ @fred 添加您的 login.blade.php
  • 不,我没有改变原来的登录功能。请检查我的 login.blade.php 文件。 pastebin.com/RqAXD2m3
猜你喜欢
  • 2016-12-12
  • 1970-01-01
  • 2016-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多