在弹簧控制器中注销

时间:2020-08-25 12:04:19

标签: java spring jwt

我想知道如何从服务器撤消我的JWT令牌。为什么我需要它,因为那时客户端将从应用程序注销。它应该杀死客户端的现有令牌。但是我想知道如何实现它。我从Google那里搜索,仅说明了如何进行身份验证。

1 个答案:

答案 0 :(得分:0)

在不进一步了解您的设置的情况下,我将不得不使用一些假设。在大多数情况下,访问令牌(不仅限于JWT)将有一个生存期,即一个有效期,并且服务提供者(您的服务)在此期间不会再次检查其有效性(出于性能原因)。令牌过期后,服务提供商通常会使用身份提供商(身份验证服务器)提供的刷新令牌来获取该用户的新访问令牌-如果仍处于登录状态。

因此,如果用户注销(身份提供者知道这一点),刷新访问令牌将失败,因此您将知道该用户已注销。在那之前,服务提供商不会尝试刷新,也不知道用户已注销(在其他地方)。

该怎么办?您可能希望将活动访问令牌和刷新令牌存储在应用程序(服务提供商)中,如果用户注销,则删除与该用户关联的令牌。然后,用户将被重定向到身份提供者。

如果用户在其他地方注销,则身份提供商将需要通知所有服务提供商删除某些访问权限并刷新令牌。