marketredesign/mrd-auth0-laravel

用于轻松配置 Laravel 应用程序与 Auth0 的包装器

v3.1.1 2023-06-23 12:40 UTC

README

Latest Version on Packagist Build Status Code Coverage Total Downloads

用于轻松配置 Laravel 应用程序与 Auth0 的包装器。

还包括用于 NewRelic 的日志记录器。

入门

先决条件

  • PHP 7.4 或更高版本
  • PHP JSON 扩展
  • PHP mbstring 扩展
  • PHP XML 扩展
  • PHP Curl 扩展
  • Laravel 6 或更高版本

安装

您可以通过 composer 安装此包。

composer require marketredesign/mrd-auth0-laravel

对于配置,可以使用以下命令发布默认配置文件。

php artisan vendor:publish

选择 Marketredesign\MrdAuth0Laravel\MrdAuth0LaravelServiceProvider 选项。这将创建配置文件 config/mrd-auth0.php

升级到 v2

有关将使用 v1 的应用程序更新到 v2 的说明,请参阅UPGRADE 指南。

使用方法

有关配置用户身份验证/授权的说明,请参阅 laravel-auth0

授权数据集访问

dataset.access 中间件添加到 API 路由。然后,确保使用 dataset_iddatasetId 指定数据集 ID。它可以作为路由的一部分,也可以作为请求数据(查询参数、请求体等)的一部分。

从 Auth0 请求机器到机器令牌

使用 Auth0 门面。可以在控制台运行时使用它来检索机器到机器令牌(例如,从异步作业)。令牌会自动缓存为其有效期的二分之一。当测试获取 m2m 令牌的功能时,执行 Auth0::fake() 以使用不会对 Auth0 进行任何 API 调用的模拟 Auth0Repository。可以使用 Auth0::fake...() 函数来影响模拟存储库。

用户存储库

使用 Users 门面。可以用来通过 ID 检索单个用户或多个用户。还包括通过电子邮件地址检索多个用户的功能。当测试使用 UserRepository(或门面)的功能时,执行 Users::fake() 以使用不会对 Auth0 进行任何 API 调用的模拟 UserRepository。可以使用 Users::fake...() 方法来影响模拟存储库。

数据集存储库

使用 Datasets 门面。可以用来检索当前正在执行 API 请求的用户所授权的数据集。当测试使用 DatasetRepository(或 Datasets 门面)的功能时,执行 Datasets::fake() 以使用不会对底层用户工具 API 进行任何 API 调用的模拟 DatasetRepository。可以使用 Datasets::fake...() 方法来影响模拟存储库。

记录到 NewRelic

config/logging.php 文件中创建一个新的记录器(以下为示例代码),并确保已设置 NEWRELIC_LICENSE_KEY。然后,此记录器可以像任何其他记录器一样被选择,例如,通过将 LOG_CHANNEL 设置为 'newrelic'

此记录器会寻找可选的 app.repositoryapp.version 配置值,并将它们与每个记录的消息一起记录,因此如果希望将其包括在内,请将那些字段添加到 config/app.php 文件中。

示例代码

config/logging.php 中的记录器

'newrelic' => [
    'driver' => 'custom',
    'via' => \Marketredesign\MrdAuth0Laravel\Logging\NewRelicLogger::class,
    'license_key' => env('NEWRELIC_LICENSE_KEY'),
],

config/app.php 中的可选 app.repositoryapp.version 配置值

    /*
    |--------------------------------------------------------------------------
    | Repository Name
    |--------------------------------------------------------------------------
    |
    | The name of the repository this application is an instance of.
    | Used for example when logging to NewRelic.
    |
    */
    'repository' => 'your-repository-name-here',
    
    /*
    |--------------------------------------------------------------------------
    | Application Version
    |--------------------------------------------------------------------------
    |
    | Version name of the code currently. When developing, this will be local.
    | When the code is being built, a version.txt document at the root should
    | be created containing the version number (or other build specification
    | such as the commit hash), which is then loaded into this config variable.
    |
    */
    'version' => file_exists('../version.txt') ? file('../version.txt')[0] : 'local',

运行测试

只需运行

vendor/bin/phpunit

作者

  • Marijn van der Horst - 初始工作

另请参阅参与此项目的贡献者列表

许可证

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