在本教程中,我们将通过使用Sanctum
应用程序开发完整的Laravel 11 REST API
身份验证以及简单的分步指南来了解使用Sanctum
身份验证的Laravel 11 REST API
。
我们将从头开始学习API
、REST API
和Laravel Sanctum
,并创建一个示例API
。
API
是什么?
API
(应用程序编程接口)只是两个或多个计算机程序之间的一种通信方式。API
还用于Web
和移动应用程序开发;因此,构建REST API
对于任何Web
和移动应用程序开发人员来说都非常重要。
Laravel Sanctum
是什么?
Laravel Sanctum
是Laravel
应用程序的API
身份验证包,为单页应用程序(SPA)、移动应用程序和其他API
驱动的项目提供轻量级、简单易用的身份验证系统。它使用JSON Web
令牌(JWT) 或API
令牌提供基于令牌的身份验证,从而实现安全身份验证,而无需传统基于会话的身份验证的开销。Sanctum
简化了令牌身份验证的设置,使开发人员能够专注于构建他们的应用程序,而不是处理身份验证的复杂性。
我们将使用Laravel Sanctum
,这是一个身份验证系统包,用于为SPA
(单页应用程序)开发简单的API
,这些API
通常通过React JS
、Angular
或Vue JS
构建。
在此示例中,我们将安装Laravel 11
应用程序。然后,我们将安装用于API
身份验证的Sanctum composer
包。之后,我们将创建用于用户身份验证的注册和登录API
。然后,我们将创建一个产品REST API
,并且您必须使用用户令牌进行身份验证。因此,让我们按照以下步骤逐步完成此示例:
按照以下步骤在Laravel 11
应用程序中创建RESTful API
完整示例。
第一步 安装Laravel 11
如果已经安装可以忽略;如果您尚未创建Laravel
应用程序,则可以继续执行以下命令:
composer create-project laravel/laravel example-app
第二步 安装组件Sanctum API
包
在Laravel 11
中,默认情况下,我们没有api.php
路由文件。因此,您只需要运行以下命令即可安装带有api.php
文件的Sanctum
。
php artisan install:api
第三步 配制Sanctum
文件
在此步骤中,我们必须配置三个位置:模型、服务提供商和身份验证配置文件。因此,您只需要在这些文件中进行以下更改:
在模型中,我们添加了Sanctum
的HasApiTokens
类。
在auth.php
中,我们添加了API
身份验证配置。
app/Models/User.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name',
'email',
'password',
];
/**
* The attributes that should be hidden for serialization.
*
* @var array
*/
protected $hidden = [
'password',
'remember_token',
];
/**
* Get the attributes that should be cast.
*
* @return array
*/
protected function casts(): array
{
return [
'email_verified_at' => 'datetime',
'password' => 'hashed',
];
}
}
第四步 添加Product Table
和Product
模型
接下来,我们需要使用laravel artisan
命令为products
表创建迁移。因此,首先,执行以下命令:
php artisan