Laravel核心代码学习--用户认证系统(基础介绍)

本文深入探讨Laravel的内置用户认证系统,重点介绍核心组件——看守器(Guard)和用户提供器(User Provider)。看守器负责认证每个请求中的用户,如SessionGuard使用session和cookies。用户提供器则从数据库中检索用户。Laravel提供了Eloquent和查询构造器作为默认的提供器。配置文件`config/auth.php`中定义了这些设置。接下来的文章将详细阐述每个组件的功能和实现细节。
摘要由CSDN通过智能技术生成

用户认证系统(基础介绍)

使用过Laravel的开发者都知道,Laravel自带了一个认证系统来提供基本的用户注册、登录、认证、找回密码,如果Auth系统里提供的基础功能不满足需求还可以很方便的在这些基础功能上进行扩展。这篇文章我们先来了解一下Laravel Auth系统的核心组件。

Auth系统的核心是由 Laravel 的认证组件的「看守器」和「提供器」组成。看守器定义了该如何认证每个请求中用户。例如,Laravel 自带的 session 看守器会使用 session 存储和 cookies 来维护状态。

下表列出了Laravel Auth系统的核心部件

名称 作用
Auth AuthManager的Facade
AuthManager Auth认证系统面向外部的接口,认证系统通过它向应用提供所有Auth用户认证相关的方法,而认证方法的具体实现细节由它代理的具体看守器(Guard)来完成。
Guard 看守器,定义了该如何认证每个请求中用户
User Provider 用户提供器,定义了如何从持久化的存储数据中检索用户

在本文中我们会详细介绍这些核心部件,然后在文章的最后更新每个部件的作用细节到上面给出的这个表中。

开始使用Auth系统

只需在新的 Laravel 应用上运行 php artisan make:auth 和 php artisan migrate 命令就能够在项目里生成Auth系统需要的路由和视图以及数据表。

php artisan make:auth执行后会生成Auth认证系统需要的视图文件,此外还会在路由文件web.php中增加响应的路由:

Auth::routes();

Auth Facade文件中单独定义了routes这个静态方法

public static function routes()
{
    static::$app->make('router')->auth();
}

所以Auth具体的路由方法都定义在Illuminate\Routing\Routerauth方法中,关于如何找到Facade类代理的实际类可以翻看之前Facade源码分析的章节。

namespace Illuminate\Routing;
class Router implements RegistrarContract, BindingRegistrar
{
    /**
     * Register the typical authentication routes for an application.
     *
     * @return void
     */
    public function auth()
    {
        // Authentication Routes...
        $this->get('login', 'Auth\LoginController@showLoginForm')->name('login');
        $this->post('login', 'Auth\LoginController@login');
        $this->post('logout', 'Auth\LoginController@logout')->name('logout');

        // Registration Routes...
        $this->get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
        $this->post('register', 'Auth\RegisterController@register');

        // Password Reset Routes...
        $this->get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
        $this->post('password/email', '
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值