* 上一节,我们快速的实现了自带的登录注册模块 * 这一节,我们对登录和退出的逻辑进行分析 > 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('/'); } ```