carsguide / auth-manager
Lumen/Laravel 的 Auth0 包装器
此包的官方仓库似乎已删除,因此该包已被冻结。
v10.0.0
2024-02-07 23:22 UTC
Requires
- php: ^8.1
- auth0/auth0-php: 8.4.0
- einar-hansen/laravel-psr-6-cache: ^1.0
- firebase/php-jwt: ^6.0
- guzzlehttp/guzzle: ^7.2
- illuminate/cache: ^10.0
- illuminate/container: ^10.0
- illuminate/http: ^10.0
- illuminate/log: ^10.0
- illuminate/support: ^10.0
- psr/cache: ^3.0
- symfony/cache: ^6.0
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^10.0
- vlucas/phpdotenv: ^5.0
- dev-master
- v10.0.0
- v9.0.4
- v9.0.3
- v9.0.2
- v9.0.1
- v9.0.0
- v8.0.0
- v6.0.0
- v5.1.0
- v5.0.0
- v4.0.0
- v3.0.0
- v2.0.1
- v2.0.0
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-feature-laravel-10
- dev-feature-cacheitempool-fix
- dev-feature-lock-auth0
- dev-feature/firebase-update
- dev-feature/firebase-update-7.4
- dev-feature-laravel-9
- dev-feature-lumen-9
- dev-ev-9d9
- dev-feature/update_dependencies
- dev-feature-lumen-8
- dev-feature-lumen-7
- dev-exception-error-auth0
- dev-CacheTime
This package is auto-updated.
Last update: 2024-06-08 00:02:21 UTC
README
使用 PHP 8.0 版本在微服务中管理 Lumen 和 Laravel 的 Auth0 集成。
安装
通过 composer
$ composer require carsguide/auth-manager
环境设置 .env 文件
AUTH0_AUDIENCE=
AUTH0_OAUTH_URL=
AUTH0_DOMAIN=
AUTH0_JWT_CLIENTID=
AUTH0_JWT_CLIENTSECRET=
AUTH0_ALGORITHM=
值 | 这是什么 |
---|---|
AUTH0_AUDIENCE | 验证令牌的 API 微服务的 Auth0 受众/标识符 |
AUTH0_OAUTH_URL | 查询以获取令牌的 Auth0 URL(租户) |
AUTH0_DOMAIN | 租户的 Auth0 域(在令牌验证期间使用) |
AUTH0_JWT_CLIENTID | 获取令牌的微服务的 Auth0 客户端 ID |
AUTH0_JWT_CLIENTSECRET | 获取令牌的微服务的 Auth0 客户端密钥 |
AUTH0_ALGORITHM | 算法方法,建议使用 RS256(默认) |
注册服务提供者
Lumen
将以下代码片段添加到 bootstrap/app.php
文件的 register service providers 部分
$app->register(Carsguide\Auth\Providers\AuthManagerServiceProvider::class);
Laravel
将以下代码片段添加到 config/app.php
文件的 register service providers 部分
Carsguide\Auth\Providers\AuthManagerServiceProvider::class,
注册中间件
要使用令牌和范围验证,请通过 routeMiddleware() 注册中间件
Lumen: bootstrap/app.php
$app->routeMiddleware([ 'auth' => Carsguide\Auth\Middlewares\Auth0Middleware::class, ]);
Laravel: app/Http/kernel.php
protected $routeMiddleware = [ 'auth' => \Carsguide\Auth\Middlewares\Auth0Middleware::class, ];
使用
生成 JWT 令牌
use Carsguide\Auth\AuthManager; use GuzzleHttp\Client; $auth = new AuthManager(new Client()); $auth = $auth->setAudience('foobar'); $auth->getToken();
使用 AuthManager
Facade
use Carsguide\Auth\Facades\AuthManager; AuthManager::setAudience('foobar')->getToken();
缓存 JWT 令牌
AuthManager::setAudience('foobar') // By default, JWT will cache for 50 minutes // If you need to override the default length, // pass minutes in cache(120) method. ->cache() // or ->cache($minutes = 120) ->getToken();
验证 JWT 令牌/范围访问
每个令牌都通过中间件进行验证。您必须在路由或控制器中调用中间件以验证访问。中间件需要定义范围,不能是全局的。
$this->middleware('auth:listings:read');
使用路由文件
$router->get('admin/profile', ['middleware' => 'auth:listings:read', function () { // }]);