如何通过Cookie撤销JWT身份验证?

如何通过Cookie撤销JWT身份验证?,jwt,micronaut,Jwt,Micronaut,我正在尝试使用Micronaut测试JWT身份验证 我读过,这本指南很有效,但我还是一点也不懂 例如,当用户A使用用户名Sherlock登录并且登录成功时,用户A的客户端将获得JWT令牌并存储在Cookie中 另一方面,用户B使用相同的用户名并登录到服务器,因为他/她将获得新的JWT令牌并存储到Cookie中 这意味着用户A&B能够访问http:localhost:8080/,但当用户A或B注销时,用户A&B都无法访问http://localhost:8080/ 再说一遍 这意味着,当其中一个注

我正在尝试使用Micronaut测试JWT身份验证

我读过,这本指南很有效,但我还是一点也不懂

例如,当用户A使用用户名Sherlock登录并且登录成功时,用户A的客户端将获得JWT令牌并存储在Cookie中 另一方面,用户B使用相同的用户名并登录到服务器,因为他/她将获得新的JWT令牌并存储到Cookie中

这意味着用户A&B能够访问http:localhost:8080/,但当用户A或B注销时,用户A&B都无法访问http://localhost:8080/ 再说一遍

这意味着,当其中一个注销时,两个JWT令牌都不再有效


micronaut如何撤销JWT令牌

我建议阅读这篇文章:

但简单的回答是,您实际上无法像在表单登录或基本身份验证方法中那样注销。例如,您可以强制删除cookie以删除JWT。但更好的解决方案是为JWT提供过期时间,以获得满足此类情况的未授权状态

假设我们的JWT过期5分钟,用户A和B都已登录。然后用户A注销,应用程序删除cookie,但用户B浏览器中现有的JWT仍处于活动状态,您没有强制删除的选项。但是客户端B的JWT将在5分钟后过期,他将不得不再次登录,因为他将为每一个即将到来的HTTP调用获得401

我希望这能对你有所解释:


我建议阅读这篇文章:

但简单的回答是,您实际上无法像在表单登录或基本身份验证方法中那样注销。例如,您可以强制删除cookie以删除JWT。但更好的解决方案是为JWT提供过期时间,以获得满足此类情况的未授权状态

假设我们的JWT过期5分钟,用户A和B都已登录。然后用户A注销,应用程序删除cookie,但用户B浏览器中现有的JWT仍处于活动状态,您没有强制删除的选项。但是客户端B的JWT将在5分钟后过期,他将不得不再次登录,因为他将为每一个即将到来的HTTP调用获得401

我希望这能对你有所解释:


但更好的解决方案是为您的JWT提供过期时间,以获得满足此类情况的未授权状态,这意味着我必须将JWT列入黑名单?为什么他必须再次登录,因为他将得到一个401为每一个即将到来的HTTP呼叫?用户A和B有不同的JWT?如果你需要管理过期的JWT,那么你根本不需要JWT。但更好的解决方案是为你的JWT提供过期时间,以获得满足此类情况的未授权状态,这意味着我必须将JWT列入黑名单?为什么他必须再次登录,因为他将得到一个401为每一个即将到来的HTTP呼叫?用户A和B有不同的JWT?如果您需要管理过期的JWT,那么您根本不需要JWT。