【问题标题】:Oauth2 valid token JWT SpringOauth2 有效令牌 JWT Spring
【发布时间】:2019-01-20 01:52:11
【问题描述】:

检查令牌是否对 oauth2 中的 JWT 令牌有效的最佳方法是什么。

我应该使用这个端点吗?

/oauth/check_token

我不知道如何使用它,也不知道它在做什么。

我需要验证令牌的原因是,我想要一些过滤器,当提供正确的令牌时,它可以让我登录用户。

或者也许我应该从 JWT Token 获取用户名,然后向数据库询问用户?

【问题讨论】:

  • Firebase Authentication 可以为您解决这些问题:生成令牌、验证其是否有效以及拥有登录到您的应用程序的用户列表。

标签: java spring-security oauth-2.0 jwt


【解决方案1】:

有多种方法可以验证 OAuth2 JWT。基本上它始终是相同的过程:JWT 由发行人签名,然后签名从/为收件人(在你的情况下)得到验证。 JWT 可以非对称签名(使用颁发者的私钥和合适的证书进行验证)或对称签名(签名和验证使用相同的密钥)。


自行验证

一种方法是自行验证JWT(在您的应用程序代码中),但为此您需要拥有密钥或公共证书。您可以在特定库的帮助下完成此操作(请参阅here)。

由受信任的第三方验证

另一种方法是让受信任的第三方为您验证JWT。这可以在特定端点的帮助下完成,例如您建议的/oauth/check_token(请参阅here)。端点 url 可能因不同的身份提供者而异。此解决方案的优点是您不必在应用程序代码中实现验证逻辑,并且您不必拥有用于验证的密钥/证书。一个很大的缺点显然是,每个JWT 验证都要额外调用一次。

【讨论】:

  • 除了你的答案。我发现我们可以使用 tokenStore。 tokenStore.readAuthentication(token) - 为我们提供经过身份验证的用户。
猜你喜欢
  • 2021-05-22
  • 2018-08-03
  • 2016-08-12
  • 2015-04-16
  • 1970-01-01
  • 2017-02-06
  • 2017-11-09
  • 2020-04-23
  • 2017-06-02
相关资源
最近更新 更多