欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

laravel入门实战开发(三):laravel默认登录Auth流程分析

程序员文章站 2022-05-12 08:57:50
...
  • 上一节,我们生成了默认的登录注册功能
  • 这一节,我们对登录和退出的逻辑进行分析,为后面自定义登录注册模块打好基础

App\Http\Controllers\Auth\aaa@qq.com

我们找到登录页面路由,找到LoginController控制器,找到showLoginForm 方法,在phpstom中ctrl+左键,快速定位核心代码
laravel入门实战开发(三):laravel默认登录Auth流程分析

AuthenticatesUsers中找到showLoginForm 方法,简单提一下trait,类似于类,可用于多继承使用,一些代码块的复用

public function showLoginForm()
{
    return view('auth.login');
}
  • 我们找到登录的模板,resources\\view\\auth\\login.blade.php

模板中是一个form表单的提交,提交的字段为,emailpassword,post提交到路由

App\Http\Controllers\Auth\aaa@qq.com

  • 回到 AuthenticatesUsers 文件中,找到login方法,对以下方法进行分析
$this->validateLogin($request);
if ($this->attemptLogin($request)) {
    return $this->sendLoginResponse($request);
}

validateLogin中是对表单数据的验证,在方法里面我们找到,
username()我们发现提交的字段为email,这里可以改写成我们需要的字段
attemptLogin,验证登录正确性,登录名和密码正确登录成功,跳转,需要改写成我们自己跳转到的路由

return property_exists($this, ‘redirectTo’) ? $this->redirectTo : ‘/home’;
这里 默认是跳转到home

同样我们找到logout方法,这里清除了session,跳转到了根目录

public function logout(Request $request)
{
    $this->guard()->logout();

    $request->session()->invalidate();

    return $this->loggedOut($request) ?: redirect('/');
}
  • 到这里我们已经基本明白了登录整个流程,下一节我们将进行我们自定义登录,使用默认登录模块并对其改写