📜  Laravel 8 身份验证 - PHP (1)

📅  最后修改于: 2023-12-03 15:32:32.888000             🧑  作者: Mango

Laravel 8 身份验证 - PHP

Laravel 是一款流行的 PHP Web 开发框架,提供了一系列的功能,其中包括身份验证。身份验证是任何 Web 应用程序的必备的一项安全措施,它可以确保只有授权的用户才能访问应用程序的敏感数据或功能。

安装 Laravel 8

在开始身份验证之前,您需要先安装 Laravel 8。可以通过 Composer 命令安装 Laravel:

composer create-project --prefer-dist laravel/laravel laravel-auth

请注意,此命令将创建一个名为 laravel-auth 的新 Laravel 项目。如果您想使用其他项目名称,请将 laravel-auth 替换为您的项目名称。

配置身份验证

在安装 Laravel 后,我们需要使用 make:auth Artisan 命令创建身份验证所需的视图、控制器和路由。可以使用以下命令:

php artisan make:auth

此命令将生成必要的视图、控制器和路由,以便用户可以注册、登录和注销。

配置数据库

身份验证需要一个数据库来保存用户信息。在创建身份验证视图、控制器和路由后,我们需要配置数据库连接。在 .env 配置文件中,找到以下几行:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

将以上内容修改为您的数据库设置。确保您的数据库具有一个名为 laravel 的数据库和一个名为 root 的用户。

然后,通过运行以下命令来生成数据库表:

php artisan migrate

此命令将生成必要的表,以便用户可以被保存在数据库中。

身份验证路由

Laravel 8 身份验证包含以下路由:

| URI | Name | Method | Action | | --- | --- | --- | --- | | /login | login | GET,POST | Illuminate\Routing\Controller@postLogin | | /logout | logout | POST | Illuminate\Routing\Controller@logout | | /register | register | GET,POST | Illuminate\Routing\Controller@register | | /password/reset/{token?} | password.request | GET | Illuminate\Routing\Controller@showLinkRequestForm | | /password/email | password.email | POST | Illuminate\Routing\Controller@sendResetLinkEmail | | /password/reset | password.update | POST | Illuminate\Routing\Controller@reset | | /password/reset/{token?} | password.reset | GET | Illuminate\Routing\Controller@showResetForm |

这些路由允许用户进行登入、注销、注册和密码重置操作。您可以在 routes/web.php 文件中找到这些路由。

用户模型

Laravel 8 身份验证使用默认用户模型 App\Models\User。如果您想使用其他用户模型,则需要在 config/auth.php 配置文件中进行更改。

默认的用户模型具有名称、电子邮件地址和密码字段。如果您想要在用户模型中添加其他字段,则需要将数据库迁移文件创建为新增列。

身份验证中间件

Laravel 8 身份验证使用 auth 中间件来确保用户已经被认证。如果您想保护一个路由或控制器动作,您可以使用此中间件。例如:

Route::get('/dashboard', function () {
    // Only authenticated users may enter...
})->middleware('auth');

您也可以使用 guest 中间件来保护只有未经身份验证的用户才能访问的路由或控制器动作。例如:

Route::get('/register', function () {
    // Only guest users may enter...
})->middleware('guest');
总结

Congratulations!您已经学会了使用 Laravel 8 身份验证来确保您的 Web 应用程序的安全性。现在您已经知道如何使用默认的身份验证路由、中间件和用户模型。本文涵盖了 Laravel 身份验证的基础知识,您可以根据自己的需求自定义身份验证。尽情享受 Laravel 和身份验证的乐趣吧!