如何通过 Cookie 撤销 JWT 认证?
How to Revoke JWT Authentication via Cookie?
我正在尝试使用 Micronaut 测试 JWT 身份验证。
我从 this guide 那里读到,这个指南很有效,但我还是完全不明白。
例如,当用户A使用用户名sherlock
登录并登录成功时,用户A的客户端会获取到JWT Token并存储在Cookie
中
另一方面,用户 B 使用相同的用户名并登录到服务器,ofcouse he/she 将获得新的 JWT 令牌并存储到 Cookie
.
表示用户A和B可以访问http:localhost:8080/
,但是当用户A或B访问Logout
时,用户A和B都无法访问[=15] =] 再次。
这意味着,当其中一个注销时,两个 JWT Token 都不再有效。
来自 this guide, micronaut 如何撤销该 JWT 令牌?
我推荐阅读这篇文章:
https://medium.com/devgorilla/how-to-log-out-when-using-jwt-a8c7823e8a6
但简短的回答是,您实际上无法像在表单登录或基本身份验证方法中那样 "log out"。例如,您可以强制删除 cookie 以删除 JWT。但更好的解决方案是为您的 JWT 提供到期时间,以获得满足此类情况的未授权状态。
假设我们的 JWT 过期 5 分钟,用户 A 和 B 已登录。然后用户 A "logs out" 和应用程序删除了 cookie,但用户 B 浏览器中现有的 JWT 仍然存在并且您没有选择强制删除。但是客户端 B 的 JWT 将在 5 分钟后过期,他将不得不重新登录(因为每次即将到来的 HTTP 调用他都会收到 401)
我希望这对你有所解释:)
我正在尝试使用 Micronaut 测试 JWT 身份验证。
我从 this guide 那里读到,这个指南很有效,但我还是完全不明白。
例如,当用户A使用用户名sherlock
登录并登录成功时,用户A的客户端会获取到JWT Token并存储在Cookie
中
另一方面,用户 B 使用相同的用户名并登录到服务器,ofcouse he/she 将获得新的 JWT 令牌并存储到 Cookie
.
表示用户A和B可以访问http:localhost:8080/
,但是当用户A或B访问Logout
时,用户A和B都无法访问[=15] =] 再次。
这意味着,当其中一个注销时,两个 JWT Token 都不再有效。
来自 this guide, micronaut 如何撤销该 JWT 令牌?
我推荐阅读这篇文章:
https://medium.com/devgorilla/how-to-log-out-when-using-jwt-a8c7823e8a6
但简短的回答是,您实际上无法像在表单登录或基本身份验证方法中那样 "log out"。例如,您可以强制删除 cookie 以删除 JWT。但更好的解决方案是为您的 JWT 提供到期时间,以获得满足此类情况的未授权状态。
假设我们的 JWT 过期 5 分钟,用户 A 和 B 已登录。然后用户 A "logs out" 和应用程序删除了 cookie,但用户 B 浏览器中现有的 JWT 仍然存在并且您没有选择强制删除。但是客户端 B 的 JWT 将在 5 分钟后过期,他将不得不重新登录(因为每次即将到来的 HTTP 调用他都会收到 401)
我希望这对你有所解释:)