maslennikov-yv/jwt-guard

Laravel 守护包

1.1.0 2023-06-12 11:46 UTC

This package is not auto-updated.

Last update: 2024-09-30 18:48:11 UTC


README

安装

 composer require "maslennikov-yv/jwt-guard"

准备

将以下代码放置在 AuthServiceProvider 的 boot() 方法中

Auth::extend('jwt', function ($app, $name, array $config) use ($public_key) {
    return new JwtGuard($provider, $request, function ($token) use ($public_key) {
        try {
            $content = JWT::decode($token, new Key($public_key, 'RS256'));
            return property_exists($content, 'sub') ? $content->sub : null;
        } catch (Exception $e) {
            Log::debug($e->getMessage());
        }
        return null;
    });
});

此示例使用 Firebase JWT 库,需要安装

composer require firebase/php-jwt

但您可以使用任何其他允许您验证 JWT 并从中提取有用数据的库

配置

在 config/auth.php 文件中将 'api' 守护配置为使用 jwt 作为驱动程序

'guards' => [
    'api' => [
        'driver' => 'jwt',
        'provider' => 'users',
    ],
],

测试

composer test