bayareawebpro/laravel-simple-jwt

此包已被废弃,不再维护。未建议替代包。

Laravel 简单 JsonWebToken

v1.0.6 2021-01-23 01:13 UTC

This package is auto-updated.

Last update: 2022-05-23 04:11:47 UTC


README

CI Coverage Downloads Version License

composer require bayareawebpro/laravel-simple-jwt

创建加密密钥

artisan jwt:secret

将密钥添加到环境文件

JWT_SECRET=XXX

配置 Auth.php

'guards' => [
    ...
    'api' => [
        'driver' => 'simple-jwt', 
        'provider' => 'users',
        'hash' => false,
    ],
],

在 Auth 服务提供者中注册

JsonWebToken::register(User::class, 'token');

创建新的 Token、过期时间和声明

$token = JsonWebToken::createForUser(User::first(), now()->addHours(3), [
  'my_key' => true
]);

认证

查询字符串

http://laravel.test/api/user?token=xxx

或头部

Authorization: Bearer XXX

从 Token 获取声明

$request->jwt()->get('my_key');
$request->jwt('my_key');

扩展 Token 有效期和声明

$newToken = JsonWebToken::extendToken(request()->jwt(), now()->addHours(3), ['key' => true]);

黑名单处理器

$bannedUUID = request()->jwt('jti');
JsonWebToken::rejectionHandler(fn($parsed)=>in_array($parsed->get('jti'),[
    $bannedUUID
]));

测试

composer test
composer lint