最新消息: 新版网站上线了!!!

laravel源码分析用户认证系统之登录

laravel自带一套用户登录,注册等功能,用户只需要通过php artisan make:auth命令安装即可使用。我们这里已经安装配置了用户认证系统,下面重点通过登录(login)说说整个代码的执行过程

laravel版本5.4

需要提前了解的知识:

1.包含的php知识点:有namespace 命名空间、use关键字的使用、trait的语法

2.laravel包含的知识点:中间件、路由、控制器等等

3. 本次说明过程是按照访问url为线索分析

4. 单独说一下trait的定义类似于class但又不完全相同,具体查看php手册,这里只要说明一下trait在laravel中的使用。trait是通过use关键字来

使用的,查看大量代码会发现,命名空间和trait使用都是通过use关键字,不同之处在于导入位置,命名空间在类的定义体外导入,而trait在类的定义体内导入。

一、访问http://127.0.0.1/laravel/public/login

blob.png

访问上面url实际执行的入口脚本文件/laravel/app/Http/Controllers/Auth/LoginController.php

LoginController.php代码如下:

namespace App\Http\Controllers\Auth;  //LoginController类定义在App\Http\Controllers\Auth命名空间下
use App\Http\Controllers\Controller;  //导入命名空间
use Illuminate\Foundation\Auth\AuthenticatesUsers; //导入命名空间
class LoginController extends Controller
{
use AuthenticatesUsers;   //使用trait,注意和上面命名空间的区别
public function __construct()
{
$this->middleware('guest')->except('logout');  //在LoginController控制器中注册guest中间件
}
}

代码说明:

/*

* 一、guest中间件

* 通过Kernel.php文件中的代码得知guest中间件对应的文件实则为RedirectIfAuthenticated

* 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class

* guest是在Kernel.php文件中,为RedirectIfAuthenticated中间件指派的键值

* 二、middleware()方法说明

* middleware()方法是LoginController控制器继承于父类,定义在 Illuminate\Routing\ControllerMiddlewareOptions.php文件中

* 三、except()方法定义于 Illuminate\Routing\ControllerMiddlewareOptions.php文件中,从名称可以了解的作用,是对控制器中的中间件赋予的操作

*/



转载请注明:谷谷点程序 » laravel源码分析用户认证系统之登录