jobilla/laravel-jwt-validate

v3.0.0 2023-11-15 13:45 UTC

This package is auto-updated.

Last update: 2024-09-15 15:36:31 UTC


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 保护。