【问题标题】:How does a JSON Web Token verify users on authentication?JSON Web 令牌如何验证用户的身份验证?
【发布时间】:2018-01-02 17:56:27
【问题描述】:

JSON Web 令牌如何验证用户的身份验证? JWT 是否存储用户数据?

如果是这样,我如何获得已完成身份验证的用户列表?

【问题讨论】:

  • 我认为您对 JWT 有一个普遍的误解。 JWT 包含有关 ONE 用户的所有相关信息,例如用户名、唯一 ID,可能还有一些附加信息(例如到期时间)。它可能是明文或加密的,但在任何情况下都应该签名。 oaf JWTs 的想法是您不在服务器上存储信息(或者,至少尽可能少,您通常需要一些服务器端存储来存储更新令牌)。
  • @Turing85 您应该格式化您的评论并将其作为答案发布,因为它实际上回答了问题......
  • @LucasOliveira 不,太懒了;)

标签: java spring jwt


【解决方案1】:

在基于令牌的身份验证的上下文中,令牌是识别用户的一段数据,用作执行身份验证的凭据。


JWT 是一个自包含的令牌,它包含三个部分:

  • 标题
  • 有效载荷
  • 签名

有效负载包含一组声明,您可以使用它来存储任意数据。

可以通过使用私钥验证在服务器端生成的签名来检查令牌的完整性,同时使用编码为 Base64 的标头和有效负载。 JWT 允许您执行无状态身份验证,也就是说,除了用于签署令牌的密钥之外,您不需要在服务器端存储任何内容。


sub 是标准有效负载声明,用于存储作为 JWT 主题的主体(为其颁发令牌的用户):

4.1.2. "sub" (Subject) Claim

sub(主题)声明标识了作为 JWT 的主题。 JWT 中的声明通常是语句 关于主题。主题值必须被限定为 在发行人的上下文中是本地唯一的,或者是全球唯一的。 此声明的处理通常是特定于应用程序的。这 sub 值是包含 StringOrURI 的区分大小写的字符串 价值。使用此声明是可选的。

【讨论】:

    猜你喜欢
    • 2019-11-24
    • 2018-05-07
    • 2018-07-01
    • 2017-02-03
    • 2018-06-03
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多