marketredesign / mrd-auth0-laravel
用于轻松配置 Laravel 应用程序与 Auth0 的包装器
Requires
- php: ^8.1
- ext-json: *
- auth0/auth0-php: ^8.5
- auth0/login: ~7.7.0
- guzzlehttp/guzzle: ^6.0|^7.0
- illuminate/contracts: ^10.0
- illuminate/support: ^10.0
- marketredesign/newrelic-monolog-enricher: ^3.0
Requires (Dev)
- nunomaduro/larastan: ^2.5
- orchestra/testbench: ^8.3
- phpmd/phpmd: ^2.9
- phpunit/phpunit: ^10.0
- psr-mock/http: ^1.0
- squizlabs/php_codesniffer: ^3.5
- dev-develop
- v3.1.1
- v3.1.0
- v3.0.0
- v2.x-dev
- v2.3.1
- v2.3.0
- v2.2.0
- v2.1.0
- v2.0.1
- v2.0.0
- v1.8.0
- v1.7.0
- v1.6.0
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.0
- v1.3.0
- v1.2.0
- v1.1.0
- v1.0.0
- dev-feature/v3/oidc
- dev-feature/max/remove-newrelic-monolog-enricher
- dev-feature/oidc
- dev-feature/v2/oidc
- dev-master
- dev-feature/auth0-7.8
- dev-feature/scopes
This package is auto-updated.
Last update: 2024-09-05 12:17:05 UTC
README
用于轻松配置 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_id
或 datasetId
指定数据集 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.repository
和 app.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.repository
和 app.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)。有关更多信息,请参阅许可证文件。