使用刷新令牌对 JWT 的端点 /logout 执行的操作

Posted

技术标签:

【中文标题】使用刷新令牌对 JWT 的端点 /logout 执行的操作【英文标题】:Action on endpoint /logout for JWT with refresh tokens 【发布时间】:2021-08-26 05:00:36 【问题描述】:

我使用访问令牌(JWT - 10 分钟后过期)和刷新令牌(24 小时后过期)来授权在几个客户端(移动/网络..)中运行的服务。

我想实现 /logout 端点并将刷新令牌作为查询/路径变量传递以从数据库中删除刷新令牌,并以同样的方式禁用仅从一个客户端创建新访问令牌的可能性。

是好方法吗? 端点/logout应该如何工作?

第二种方法是通过用户 ID(从访问令牌)删除所有刷新令牌,但随后我们失去了来自每个客户端(网络/移动设备..)的访问权限,这是一个糟糕的用例。

感谢您的所有建议。

【问题讨论】:

【参考方案1】:

您可以实施符合标准的令牌吊销端点,以吊销 RFC 7009 OAuth2 .0 Token Revocation 中指定的刷新令牌和/或访问令牌

【讨论】:

以上是关于使用刷新令牌对 JWT 的端点 /logout 执行的操作的主要内容,如果未能解决你的问题,请参考以下文章

Vue 资源拦截器刷新 JWT 令牌

Xamarin.iOS / Web API JWT 刷新令牌(如果过期)

我是不是使用刷新令牌?

快速中间件中的 Node.js JWT 刷新令牌

刷新令牌和 JWT 令牌交互

使用 JWT 刷新令牌如何安全?