zcoorp/laravel-passport-control

Laravel Passport的资源服务器包。


README

Software License Laravel Version Requirements

简介

Passport Control是一个与Laravel Passport兼容的OAuth2资源服务器包。

该包旨在用于作为资源服务器的Laravel应用程序,例如一个打算与运行Laravel Passport的认证服务器进行认证的API服务器(仅限资源服务器)。

本项目不依赖于Laravel Passport包本身,但它共享了一些相同的概念和接口。

目录

安装

安装此包非常简单。但在开始之前,请确保您已经准备好了先决条件。

先决条件

此包假定您已经在您的Laravel应用程序中安装并配置了Laravel Passport。一旦完成,您需要在您的Passport服务器上创建一个具有客户端凭据授权类型的客户端。

有关如何操作的详细信息,请参阅官方Laravel Passport文档

完成此操作后,请设置相应的环境变量PASSCONTROL_INTROSPECTION_CLIENT_IDPASSCONTROL_INTROSPECTION_CLIENT_SECRET

目前,Laravel没有内置 introspection 端点。因此,您需要手动创建一个。您可以通过在您的Passport服务器上安装Laravel Passport Introspection包来完成此操作。

composer require xcoorp/laravel-passport-introspection

完成此操作后,Laravel应用程序将可访问 introspection 端点,您现在可以继续安装此包。

提示

如果您需要有关如何安装和配置 introspection 包的更多信息,请参阅其文档

Composer

您可以通过Composer简单地安装该包

composer require xcoorp/laravel-passport-control

安装包后,您应该发布配置和迁移文件

php artisan vendor:publish --provider="XCoorp\PassportControl\PassportControlServiceProvider"

并运行迁移

php artisan migrate

配置

此包附带一个配置文件,您可以对其进行自定义以满足您的需求。该配置文件位于config/passport-control.php

除了用户模型之外,所有配置选项也可以通过环境变量而不是配置文件进行配置。

以下环境变量可用

使用

安装和配置包后,您需要将您的认证守卫配置为passport_control。在您的config/auth.php文件中,您可以添加一个新的守卫配置,如下所示

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

就这样,现在您可以通过使用auth:api中间件来像往常一样保护您的API路由。

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

高级使用

在某些情况下,您可能希望在本地数据库中没有用户的情况下自动创建用户。如果您想这样做,可以通过配置启用此功能。在这种情况下,成功认证后,如果本地数据库中没有找到用户,则会创建一个新用户(PASSCONTROL_CREATE_USER)。

提示

仅填写用户 id 字段,其他所有字段必须可空或有默认值。

测试

本包的功能与 Pest PHP 进行了测试。您可以使用以下命令运行测试:

composer test

行为准则

为确保社区对所有成员友好,请查阅并遵守 行为准则

安全漏洞

请查阅关于如何报告安全漏洞的 安全策略

许可证

MIT 许可证 (MIT)。更多信息请参阅 许可文件