hyrioo/hyrnatic-authenticator

这是我打包的hyrnatic-authenticator

dev-main 2024-03-14 19:28 UTC

This package is not auto-updated.

Last update: 2024-09-26 21:52:16 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

基于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)。请参阅许可文件以获取更多信息。