* 上一节,我们快速的实现了自带的登录注册模块
* 这一节,我们对登录和退出的逻辑进行分析
> App\\Http\\Controllers\\Auth\\LoginController@showLoginForm
我们找到登录页面路由,找到LoginController控制器,找到showLoginForm 方法,在phpstom中ctrl+左键
![](https://img.kancloud.cn/90/26/9026eb357222a46cc1a4aa2b420be9d6_470x403.png)
在AuthenticatesUsers中找到showLoginForm 方法,简单提一下trait,类似于类,可用于多继承使用
```
public function showLoginForm()
{
return view('auth.login');
}
```
* 我们找到登录的模板,resources\\view\\auth\\login.blade.php
模板中是一个form表单的提交,提交的字段为,`email`、`password`,post提交到路由
> App\\Http\\Controllers\\Auth\\LoginController@login
* 回到 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('/');
}
```