maslennikov-yv / jwt-guard
Laravel 守护包
1.1.0
2023-06-12 11:46 UTC
Requires
- laravel/framework: ^8.0|^9.0|^10.0
Requires (Dev)
- firebase/php-jwt: ^6.5
- orchestra/testbench: ^6.27
- phpunit/phpunit: ^9.6
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