Laravel 验证登录

Posted

技术标签:

【中文标题】Laravel 验证登录【英文标题】:Laravel Validation login 【发布时间】:2017-12-06 22:37:03 【问题描述】:

这次我正在学习验证。我不能为我的登录表单执行此操作... 我的代码现在看起来像这样,它仅在我有错误时才有效,但此代码不想登录我的用户。我的代码中应该有什么工作以及为什么它现在不起作用?我也不知道这个验证如何知道哪个电子邮件和密码应该与登录名和来自哪个表进行比较?我应该在某处添加此信息吗?

public function login(Request $request)
  
    $this->validate($request, [
        'email'           => 'required|max:255|email',
        'password'           => 'required|confirmed',
    ]);

        return redirect()->intended('/panel');

  

【问题讨论】:

【参考方案1】:

您可以考虑将 trait AuthenticatesUsers 添加到您的控制器中:

class LoginController extends Controller 

    use \Illuminate\Foundation\Auth\AuthenticatesUsers; // <- add this line

    // ...

然后你可以抛出你的login 方法,一切都会奏效。更多信息here。

但如果你想构建自己的身份验证系统(我不推荐),你必须更多地挖掘。你可以看看here。然后像这样更新你的控制器:

public function login(Request $request)

    $this->validate($request, [
        'email'           => 'required|max:255|email',
        'password'           => 'required|confirmed',
    ]);
    if (Auth::attempt(['email' => $email, 'password' => $password])) 
        // Success
        return redirect()->intended('/panel');
     else 
        // Go back on error (or do what you want)
        return redirect()->back();
    


【讨论】:

以上是关于Laravel 验证登录的主要内容,如果未能解决你的问题,请参考以下文章

Laravel登录验证碰到的坑 哈希验证匹配问题

Laravel 默认登录身份验证生成意外错误

Laravel 4 登录验证问题

强制 Laravel 使用旧版身份验证登录用户

Laravel - 登录时返回用户和身份验证详细信息

身份验证登录时的 Laravel 超时