larahook / sanctum-refresh-token
使用刷新令牌的Sanctum身份验证
v1.0.6
2024-09-23 09:17 UTC
Requires
- php: ^8.0
- laravel/framework: ^10.0|^11.0
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_token
和refresh_token
refreshTokenPair
- 解除当前令牌对的链接并创建新的access_token
和refresh_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); } }