当前位置: 首页 > 知识库问答 >
问题:

使用jwt令牌注销的spring-bootoauth2服务器

柏夕
2023-03-14

我在springboot中用jwt令牌开发了一个oauth2服务器,我在注销时遇到了困难http://www.baeldung.com/spring-security-oauth-revoke-tokens

注销后,如果在头中提供令牌并点击/user,则它将提供所有用户信息,而应该抛出并错误地表示用户已注销

共有1个答案

谯振国
2023-03-14

对于JWT令牌,这种注销是不可能的。

JWT令牌是独立的,这意味着关于身份验证的所有信息都在令牌本身中。如果您想要检查用户是否登录,您只需检查JWT令牌中的签名和令牌到期时间。不需要与服务器通信。

如果您想注销使用JWT令牌的用户,您需要在客户端删除JWT令牌。并且优选地,JWT令牌的到期时间应该相当短,并且客户端应该例如使用刷新令牌来获得新令牌。

要了解有关 JWT 代币的更多信息,请查看 JWT.io。

此外,您使用的指南不应适用于您,因为它明确指出:

另请注意,本文仅介绍框架中的标准令牌实现,而不介绍 JWT 令牌。

 类似资料:
  • 嗨,我正在创建使用 REST API endpoint与服务器端通信的移动本机应用程序。 我以前有开发本机客户端的经验,但我将简单的令牌(随机生成的字符串)存储在存储用户信息的同一表中的数据库中。所以它就像浏览器中使用的会话,但每个请求的标头中都有令牌,而不是 cookie。 最近我发现了JWT令牌。这似乎是保护私有endpoint的好方法。您可以从移动客户端请求令牌,前提是您通过登录并获得生成的

  • 问题内容: 我在hapijs中使用jwt插件和策略。 我可以在登录用户时创建jwt令牌,并通过’jwt’策略使用同一令牌对其他API进行身份验证。 我将令牌设置为cookie,其中是令牌名称。另外,我没有将这些令牌保存在数据库中。 但是,注销时如何销毁jwt令牌? 请提出一种方法。 问题答案: JWT存储在浏览器中,因此删除令牌以删除客户端的cookie 如果您还需要在令牌到期之前从服务器端使令牌

  • 当用户单击注销按钮时,如何使JWT令牌无效?我做了一些研究,但没有找到任何好的实现。

  • 是否可以从应用程序中创建JWT令牌,并使用GCP服务帐户在应用程序中验证它?我如何在Python中做到这一点? 这两个应用程序都部署在GCP中。应用程序可以部署在GCF、Cloud Run、AppEngine、GKE甚至GCE中。 我花了一些时间阅读Google Cloud文档,但我没有找到如何处理服务间身份验证的“通用”答案。(很可能是因为它们对每个GCP产品都不相同) 那么,考虑到我们抛开了谷

  • 正如这里提到的http://projects.spring.io/spring-security-oauth/docs/oauth2.html,撤销是通过刷新令牌完成的。但这似乎不起作用。

  • 我尝试用angular2前端实现jwt令牌。当我尝试使用Postman接收带有post方法的令牌时,我接收到授权令牌,但在Angular中这样做返回空响应对象。这里是我使用的Angular服务的代码片段。 问题是,当我尝试记录时,令牌是空的,与响应相同。对于代码的后端部分,我遵循了jwt令牌的这个实现。