laravel - Laravel Passport 为每个设备 ID 创建多个访问令牌
问题描述
我的项目允许多个设备登录到同一个帐户。我能够通过调用 oauth/token 端点来生成访问令牌和刷新令牌。现在的问题是我想为一个设备 ID 设置一个令牌。
我创建了一个端点 domain.com/user/login
现在,当我使用设备 A 调用登录时,它将生成访问令牌并使用新记录刷新令牌,并且由于某些问题,设备 A 强制重定向用户再次登录,这次我将生成新的访问令牌并使用新记录刷新令牌记录。
现在我在设备 A 中有 2 个有效的访问令牌。那么我能做些什么来撤销设备 A 的第一个访问令牌,而不是撤销所有用户的帐户访问令牌。
解决方案
您可以在文档中找到有关如何撤销访问令牌的更多信息 ( 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);
推荐阅读
- angular - 如何在另一个打开的选项卡中使用组件的更改?
- angular5 - 更改组件数组的值后视图不更新
- sql - SQL ORDER BY,获取列表末尾的负值
- javascript - 函数原型调用另一个函数原型 javascript
- nginx - Plesk - nginx 反向代理 - 忽略子文件夹
- buildroot - 再次运行 make 时,删除覆盖中的文件不会在 rootfs 中删除它们
- javascript - 调用一个函数的返回值给另一个函数
- linux - VS2017远程Linux调试——查看字符串
- gcsfuse - 如何在 Google Cloud Storage 中挂载所有存储桶
- sockets - 在套接字编程中,exe文件内存逐渐增加,并且套接字保持打开状态