【问题标题】:Wrong password using auth::attempt in laravel 5.4在 laravel 5.4 中使用 auth::attempt 的密码错误
【发布时间】:2017-10-27 21:09:54
【问题描述】:

对不起,英语不好。

我尝试在 laravel 中使用 auth::attempt 登录,但返回的总是密码错误。

我的密码是

12345

这是我的代码:

  if ($validator->fails())
    {
        $result = array('msg' => 'Username tidak tersedia !');
    }
    else
    {
        if (Auth::attempt(['username' => $request->username, 'password' => $request->password]))
        {
            $result = array('msg' => 'success');
        }
        else
        {
            $result = array('msg' => 'Password tidak benar, silakan ulangi !');//wrong password
        }
    }
    //return message to view
    echo json_encode($result);

auth::attempt 的格式是什么?是散列吗?

【问题讨论】:

  • laravel 默认不使用用户名登录,它使用与用户关联的电子邮件。
  • Auth::attempt(['email' => $request->email, 'password' => $request->password)

标签: laravel laravel-5 laravel-5.4


【解决方案1】:

Laravel 默认不使用“用户名”登录。 auth::attempt 方法查找与用户关联的电子邮件地址。

除非你自定义了它。

正确的解决方案是

if (Auth::attempt(['email' => $request->email, 'password' => $request->password]))
{
  $result = array('msg' => 'success');
}
else
{
  $result = array('msg' => 'Password tidak benar, silakan ulangi !');//wrong password
}

您需要更新表单以改为通过电子邮件地址发布

【讨论】:

    【解决方案2】:
    if (Auth::attempt(['username' => $request->input('username'), 'password' => $request->input('password')])) {
            // Authentication passed...
            $result = array('msg' => 'success');
    }
    $result = array('msg' => 'Password tidak benar, silakan ulangi !');//wrong password
    

    注意 我从表单中获取用户名和密码,该表单在提交表单时通过发布请求提交我调用控制器中的函数来登录用户。

    希望这对您的问题有所帮助。

    【讨论】:

    • $request->input('username') 和 $request->username 是一回事
    • 表中是否有唯一的用户名列?
    猜你喜欢
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 2014-08-27
    • 2018-05-20
    • 2017-09-13
    • 1970-01-01
    • 2017-06-10
    相关资源
    最近更新 更多