laranex / laravel-refresh-token
一个帮助您在laravel应用程序中实现刷新令牌机制的软件包
v1.0.0
2023-06-29 06:49 UTC
Requires
- php: ^8.1
- illuminate/console: ^9.0|^10.0
- illuminate/container: ^9.0|^10.0
- illuminate/contracts: ^9.0 | ^10.0
- illuminate/support: ^9.0|^10.0
- lcobucci/clock: ^2.2 || ^3.0
- lcobucci/jwt: ^4.3|^5.0
- league/oauth2-server: 7.* | ^8.5.1
- nesbot/carbon: ^2.67
- phpseclib/phpseclib: ^3.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0|^8.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.4
This package is auto-updated.
Last update: 2024-09-04 09:56:13 UTC
README
一个帮助您在laravel应用程序中实现刷新令牌机制的软件包
安装
您可以通过composer安装此包
composer require laranex/laravel-refresh-token
生成加密密钥
php artisan refresh-token:keys
运行迁移文件
php artisan migrate
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="refresh-token-config"
这是发布配置文件的内容
return [ /* |-------------------------------------------------------------------------- | Encryption Keys |-------------------------------------------------------------------------- | | Refresh Token uses encryption keys while generating secure access tokens for | your application. By default, the keys are stored as local files but | can be set via environment variables when that is more convenient. | */ 'private_key' => env('REFRESH_TOKEN_PRIVATE_KEY'), 'public_key' => env('REFRESH_TOKEN_PUBLIC_KEY'), /* |-------------------------------------------------------------------------- | Refresh Token Model |-------------------------------------------------------------------------- | | Refresh Token Model to manage refresh tokens | */ 'model' => RefreshToken::class, /* |-------------------------------------------------------------------------- | Refresh Token Table |-------------------------------------------------------------------------- | | Refresh Token Model to manage refresh tokens | */ 'table' => 'laravel_refresh_tokens', ];
覆盖默认值(可选)
在Laranex\RefreshToken\RefreshToken
类下有以下静态方法可用于覆盖默认值。通过在服务提供程序中调用它们并传递您想要的值,将覆盖默认值。
useRefreshTokenModel(string $refreshTokenModel): void
loadKeysFrom(string $path): void
refreshTokensExpireIn(DateTimeInterface $date = null): DateInterval|static
使用方法
- 在您的刷新令牌模型中使用该特质
class User extends Authenticatable{ use HasRefreshTokens; }
$user = Auth::user()->createRefreshToken();
$verifiedToken = Laranex\RefreshToken\RefreshToken::tokenable($request->get('refresh_token')); if ($verifiedToken) { // Implement your access token logic here } else { // handle invalid refresh token }
-
处理已验证的刷新令牌
$verifiedToken = Laranex\RefreshToken\RefreshToken::tokenable($request->get('refresh_token'));
-
您可以通过调用
instance
属性来访问令牌实例,该属性将返回您在模型中使用的RefreshToken特质实例$tokenInstance = $verifiedToken->instance;
-
吊销刷新令牌(令牌将不再有效)
$verifiedToken->revoke();
-
吊销与当前刷新令牌实例相关的所有刷新令牌
$verifiedToken->revokeAll();
-
修剪命令
- 您可以使用修剪命令来删除所有过期的刷新令牌
php artisan refresh-token:prune
- 或者,您可以将此放入计划程序中定期运行
$schedule->command('refresh-token:prune')->daily();
更新日志
有关最近更改的更多信息,请参阅更新日志
贡献
有关详细信息,请参阅贡献指南
安全漏洞
有关如何报告安全漏洞,请参阅我们的安全策略
鸣谢
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件