【发布时间】:2020-08-25 20:14:17
【问题描述】:
我想知道如何从服务器撤销我的 JWT 令牌。为什么我需要它,因为那时客户端将从应用程序中注销。它应该杀死客户端的现有令牌。但我想知道如何实现它。我从谷歌搜索那里只解释了如何进行身份验证。
【问题讨论】:
我想知道如何从服务器撤销我的 JWT 令牌。为什么我需要它,因为那时客户端将从应用程序中注销。它应该杀死客户端的现有令牌。但我想知道如何实现它。我从谷歌搜索那里只解释了如何进行身份验证。
【问题讨论】:
在不了解您的设置的情况下,我将不得不使用一些假设。在大多数情况下,访问令牌(不仅仅是 JWT)将有一段时间存在,即它们有效且服务提供者(您的服务)不会再次检查其有效性(出于性能原因)的时间段。令牌过期后,服务提供者通常会使用身份提供者(身份验证服务器)提供的刷新令牌来为该用户获取新的访问令牌 - 如果仍然登录。
因此,如果用户注销(并且身份提供者知道这一点)刷新访问令牌将失败,因此您会知道用户已注销。在那之前,服务提供商不会尝试刷新,也不会知道用户已注销(在其他地方)。
怎么办?您可能希望将活动访问令牌和刷新令牌存储在您的应用程序(服务提供者)中,如果用户注销,您将删除与该用户关联的那些。然后用户将被重定向到身份提供者。
如果用户在其他地方注销,身份提供者需要通知所有服务提供者删除某些访问和刷新令牌。
【讨论】: