首页 > 解决方案 > Laravel Passport 为每个设备 ID 创建多个访问令牌

问题描述

我的项目允许多个设备登录到同一个帐户。我能够通过调用 oauth/token 端点来生成访问令牌和刷新令牌。现在的问题是我想为一个设备 ID 设置一个令牌。

我创建了一个端点 domain.com/user/login

现在,当我使用设备 A 调用登录时,它将生成访问令牌并使用新记录刷新令牌,并且由于某些问题,设备 A 强制重定向用户再次登录,这次我将生成新的访问令牌并使用新记录刷新令牌记录。

现在我在设备 A 中有 2 个有效的访问令牌。那么我能做些什么来撤销设备 A 的第一个访问令牌,而不是撤销所有用户的帐户访问令牌。

标签: laravelaccess-tokenlaravel-passport

解决方案


您可以在文档中找到有关如何撤销访问令牌的更多信息 ( https://laravel.com/docs/8.x/passport#revoking-tokens )

从文档(Laravel 8):

$tokenRepository = app('Laravel\Passport\TokenRepository');
$refreshTokenRepository = app('Laravel\Passport\RefreshTokenRepository');

// Revoke an access token...
$tokenRepository->revokeAccessToken($tokenId);

// Revoke all of the token's refresh tokens...
$refreshTokenRepository->revokeRefreshTokensByAccessTokenId($tokenId);

推荐阅读