larahook/sanctum-refresh-token

使用刷新令牌的Sanctum身份验证

v1.0.6 2024-09-23 09:17 UTC

This package is auto-updated.

Last update: 2024-09-23 09:19:14 UTC


README

安装

composer require larahook/sanctum-refresh-token
  • User 模型类中添加特性。
use Larahook\SanctumRefreshToken\Trait\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens;
}
  • config/app.php 中添加 SanctumRefreshTokenServiceProvider
'providers' => ServiceProvider::defaultProviders()->merge([
        //...
        EventServiceProvider::class,
        RouteServiceProvider::class,
        SanctumRefreshTokenServiceProvider::class,
    ])->toArray(),

配置

  • 您还可以发布配置文件以更改实现
php artisan vendor:publish --provider="Larahook\SanctumRefreshToken\SanctumRefreshTokenServiceProvider" --tag=config

迁移

  • 安装迁移
 php artisan vendor:publish --provider="Larahook\SanctumRefreshToken\SanctumRefreshTokenServiceProvider" --tag=migrations
 php artisan migrate 

使用方法

添加特性 AuthTokens

  • createTokenPair - 创建 access_tokenrefresh_token
  • refreshTokenPair - 解除当前令牌对的链接并创建新的 access_tokenrefresh_token
  • logoutTokenPair - 解除当前令牌对的链接
use Larahook\SanctumRefreshToken\Trait\AuthTokens;

class SomeClass
{
    use AuthTokens;

    public function login(string $email, string $password, string $deviceName): array
    {
        $user = User::whereEmail($email)->first();
        // ...some login pass validation

        return $this->createTokenPair($user, $deviceName);
    }
    
    /**
     * @param User $user
     *
     * @return array
     */
    public function refresh(User $user): array
    {
        return $this->refreshTokenPair($user);
    }
    
    /**
     * @param User $user
     *
     * @return bool
     */
    public function logout(User $user): bool
    {
        return $this->logoutTokenPair($user);
    }
}