gpt4 book ai didi

jwt - JWT如何在授权服务器之外进行验证

转载 作者:行者123 更新时间:2023-12-04 02:09:52 25 4
gpt4 key购买 nike

最近,我正在尝试使用 JSON Web Token (JWT) 作为访问 token 来实现 OAuth2.0 服务器。我对 JWT 的自包含功能感到非常困惑。我注意到 JWT 可以在任何地方进行验证,而不是强制在授权服务器中进行验证,因为它是独立的。此功能如何运作?为了实现自包含特性,JWT 中应该包含哪些声明?

另一个问题是,如果 JWT 是无状态的,则意味着服务器不应该存储 JWT。那么JWT是如何验证的呢?不是很容易伪造吗?

我是这个领域的菜鸟,希望有人能帮助我:)

最佳答案

JWT 包含可以签名、加密或两者兼而有之的声明。这些操作是使用加密 key 执行的。 key 可以是对称的(例如 octet key )是非对称的(例如私钥/公钥对,例如 RSAEC key )。

当你想要验证一个 JWT(即 JWS)时,你必须执行以下步骤:

  • 检查 header (支持算法,负载中有关键声明,并且理解它们的值)。
  • 检查声明(尤其是 expiatnbfaud)。
  • 检查签名。

要检查签名,您需要 key ,并且根据算法,此 key 可以是

  • 对称 key
  • 公钥如果是非对称的

当你想让第三方应用程序验证你的 JWT 时,你将使用非对称 key 并将公钥共享给第三方。由于公钥不能用于签名,第三方无法伪造带有自定义声明的有效 token 。

共享 key 的方式由您决定。常见的方法是提供一个 URL,应用程序将在其中检索它们(例如 https://www.googleapis.com/oauth2/v3/certs 处的 Google key )。

关于jwt - JWT如何在授权服务器之外进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39637560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com