* 上一節,我們快速的實現了自帶的登錄注冊模塊
* 這一節,我們對登錄和退出的邏輯進行分析
> App\\Http\\Controllers\\Auth\\LoginController@showLoginForm
我們找到登錄頁面路由,找到LoginController控制器,找到showLoginForm 方法,在phpstom中ctrl+左鍵

在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('/');
}
```