jobilla / laravel-jwt-validate
v3.0.0
2023-11-15 13:45 UTC
Requires
- illuminate/auth: 5.7.* | 5.8.* | ^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0
- illuminate/support: 5.7.* | 5.8.* | ^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0
- lcobucci/jwt: ^4.0
Requires (Dev)
- phpunit/phpunit: ^7.0
README
此包旨在用于具有多个 Laravel 应用程序协同工作的架构中,其中一个应用程序通过非对称加密算法(目前为 RS256)生成密钥来发行 JWT。这主要是为了帮助在只有 Auth 服务可能访问所有认证数据的面向服务的架构中使用 Laravel Passport 令牌。
JWT 验证将使用您主要安装的公钥检查传入认证令牌的完整性。它还将使用您 JWT 中编码的数据填充用户模型,并通过常规的 Auth::user() 使其可用。
请注意,Passport 验证不应在已使用 Laravel Passport 的项目中使用。这仅适用于可能无法访问 OAuth 私钥、Passport 数据库表或其他 Laravel Passport 必要元素的应用程序。
安装
通过 Composer 安装
composer require jobilla/laravel-jwt-validate
添加认证配置
要启用保护,将以下内容添加到您的 config/auth.php
<?php return [ // ... 'guards' => [ // ... 'jwt' => [ 'driver' => 'jwt-validate', 'public_key_path' => storage_path('oauth-public.key'), 'hydrator' => function (array $claims, \Illuminate\Http\Request $request) { return new App\User(['id' => $claims['sub']]); }, ] ] ];
您可以选择使用此作为默认保护,并可能用此替换默认的 api 保护。