hyrioo / hyrnatic-authenticator
这是我打包的hyrnatic-authenticator
dev-main
2024-03-14 19:28 UTC
Requires
- php: ^8.3
- illuminate/console: ^10.0|^11.0
- illuminate/contracts: ^10.0|^11.0
- illuminate/database: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
- lcobucci/clock: ^3.2
- lcobucci/jwt: ^5.2
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- nunomaduro/collision: ^6.0
- orchestra/testbench: ^8.22
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpunit/phpunit: ^9.5
This package is not auto-updated.
Last update: 2024-09-26 21:52:16 UTC
README
基于JWT的Laravel认证
具有刷新令牌和自动重用检测。
安装
您可以通过composer安装此包
composer require hyrioo/hyrnatic-authenticator
php artisan vendor:publish --provider="Hyrioo\HyrnaticAuthenticator\HyrnaticAuthenticatorServiceProvider"
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --tag="hyrnatic-authenticator-migrations"
php artisan migrate
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="hyrnatic-authenticator-config"
用法
更新用户模型
将Hyrioo\HyrnaticAuthenticator\HasApiTokens
特质添加到您的用户模型中。
use Hyrioo\HyrnaticAuthenticator\Traits\HasApiTokens; class User extends Authenticatable { use HasApiTokens; }
配置认证保护器
将hyrnatic-authenticator
作为驱动程序添加到您的api保护器。
示例
'guards' => [ 'api' => [ 'driver' => 'hyrnatic-authenticator', 'provider' => 'users', ], ],
发行令牌
当发行新的令牌时,您将获得一个新的令牌家族、访问令牌和刷新令牌。令牌家族可以有一个名称,例如,您想要显示用户的活跃登录。您可以分别为这三个设置单独的过期时间。也可以为访问令牌和刷新令牌设置自定义声明。
$builder = auth('api')->create($user) // NewTokenBuilder $builder->setName('Phone'); // Optional $builder->setScopes(['photo.manage']); // Optional $builder->setFamilyExpiresAt(now()->addYear()); // Optional $builder->setAccessExpiresAt(now()->addMinutes(5)); // Optional $builder->setRefreshExpiresAt(now()->addMonth()); // Optional $token = $builder->getToken(); $token->accessToken; $token->refreshToken;
刷新令牌
当刷新令牌时,您可以分别为访问令牌和刷新令牌设置新的过期时间。但作用域和自定义声明将是相同的。
$builder = auth('api')->refresh($request->refresh_token); // RefreshTokenBuilder $builder->setAccessExpiresAt(now()->addMinutes(5)); // Optional $builder->setRefreshExpiresAt(now()->addMonth()); // Optional $token = $builder->refreshToken(); $token->accessToken; $token->refreshToken;
撤销令牌
当撤销令牌时,整个令牌家族将被撤销,刷新令牌和访问令牌都将停止工作。
auth('api')->logout();
测试
composer test
变更日志
请参阅变更日志,了解最近的变化。
贡献
请参阅贡献指南以获取详细信息。
安全漏洞
请审查我们的安全策略以了解如何报告安全漏洞。
鸣谢
许可
MIT许可证(MIT)。请参阅许可文件以获取更多信息。