如何以管理员用户身份撤销用户的访问令牌和刷新令牌?在 Oauth2 中使用 JWT
Posted
技术标签:
【中文标题】如何以管理员用户身份撤销用户的访问令牌和刷新令牌?在 Oauth2 中使用 JWT【英文标题】:How to revoke the access token and refresh token of the user as an admin user? while using JWT in Oauth2 【发布时间】:2021-09-30 19:22:34 【问题描述】:管理员用户如何撤销用户的访问令牌和刷新令牌?在 Oauth2 中使用 JWT 时。是否建议将令牌存储在数据库中?
【问题讨论】:
【参考方案1】:如果您希望能够撤销令牌,那么除了在数据库中保留一些数据之外别无他法。您可以保留具体的令牌,并将它们标记为已撤销,直到它们过期,或者您可以保留一个带有 clientID/userID 和时间戳的条目,并且在给定的时间戳之前不接受颁发给该客户端/用户的令牌。
如果您希望能够撤销访问令牌,那么您必须记住,所有使用该令牌的 API 都必须调用该数据库来检查令牌是否已被撤销。拥有短暂的访问令牌(15 甚至 5 分钟)通常更容易,并且只处理撤销刷新令牌,因为 RT 仅在您的授权服务器中使用。
【讨论】:
以上是关于如何以管理员用户身份撤销用户的访问令牌和刷新令牌?在 Oauth2 中使用 JWT的主要内容,如果未能解决你的问题,请参考以下文章
如何基于使用 Oauth2 协议的身份验证改进 JWT 访问令牌和刷新令牌?
如何撤销存储在 Identity Server 数据库中的 asp net core 中的刷新令牌