Laravel Passport 综合指南:扩展你的 API 视野

Laravel Passport 是一款功能强大的工具,可让开发人员轻松验证用户身份并管理 API 令牌。在本文中,我们将探讨 Laravel Passport 的功能和能力,重点介绍如何使用它来扩展 Laravel 应用程序的范围。我们将介绍安装、配置和实施细节,以帮助您开始使用 Laravel Passport。

什么是 Laravel Passport?

Laravel Passport 是 Laravel 应用程序的 OAuth2 服务 爱沙尼亚电话号码 器和 API 身份验证包。它可在几分钟内为您的 Laravel 应用程序提供完整的 OAuth2 服务器实现。Passport 可让您轻松处理 API 身份验证、管理用户令牌并保护您的 API 端点。

Laravel Passport 的主要功能

  • 完整的 OAuth2 服务器:提供完整的 OAuth2 服务器实现。
  • 令牌管理:轻松管理访问令牌、刷新令牌和个人访问令牌。
  • 中间件集成:中间件使用令牌对请求进行验证。
  • 内置端点:用于用户注册、登录和令牌管理的端点。
  • 自定义范围:定义和管理自定义范围,实现细粒度的访问控制。

安装和配置

要开始使用 Laravel Passport,您需要通过 Composer 安装它。在终端中运行以下命令:

爱沙尼亚电话号码
狂欢

composer require laravel/passport

安装 Passport 后,您需要运行passport:installArtisan 命令。此命令 比利时手机号码列表 将创建生成安全访问令牌所需的加密密钥。

狂欢

php artisan passport:install

接下来,您需要将Laravel\Passport\HasApiTokens特征添加到App\User模型中。此特征提供了发行和管理代币所需的方法。

php

use Laravel\Passport\HasApiTokens;

class User extends Authenticatable
{
use HasApiTokens, Notifiable;
}

在 中AuthServiceProvider,您应该Passport::routesboot方法中调用 方法。此方法将注册颁发访问令牌和撤销访问令牌、客户端和个人访问令牌所需的路由。

php

public function boot()
{
$this->registerPolicies();

Passport::routes();
}

最后,您需要在配置文件api中设置中间件组config/auth.php以使用该passport驱动程序。

php

'guards' => [
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
],

实现 Laravel Passport

配置完 Laravel Passport 后,您就可以开始使用它来保护您的 API 路由。Laravel Passport 提供了一种简单的方法来确保只有经过身份验证的用户才能访问某些路由。

保护 API 路由

为了保护您的 API 路由,请auth:api在路由文件中使用中间件。

php

Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});

管理 API 令牌

Laravel Passport 可以轻松管理 API 令牌。您可以使用特征createToken提供的方法直接从应用程序发出令牌HasApiTokens

php

$token = $user->createToken('Token Name')->accessToken;

您还可以使用该类管理个人访问令牌PersonalAccessTokenFactory。此类提供创建和撤销个人访问令牌的方法。

php

$tokenResult = $user->createToken('Personal Access Token');
$token = $tokenResult->token;
$token->save();

自定义范围

自定义范围允许您定义令牌授予的访问范围。您可以在 中定义范围AuthServiceProvider

php

Passport::tokensCan([
'place-orders' => 'Place orders',
'check-status' => 'Check order status',
]);

在颁发令牌时,你可以指定令牌应具有哪些范围。

php

$token = $user->createToken('My Token', ['place-orders'])->accessToken;

结论

对于任何希望实现 API 身份验证和令牌管理的 Laravel 开发人员来说,Laravel Passport 都是必备工具。它的易用性、灵活性和强大功能使其成为保护 Laravel 应用程序的绝佳选择。按照本指南中概述的步骤,您可以快速设置 Laravel Passport 并开始利用其功能来扩展 Laravel 项目的范围。无论您需要保护简单的 API 还是管理复杂的 OAuth2 工作流,Laravel Passport 都能满足您的需求。

Leave a Reply

Your email address will not be published. Required fields are marked *