【问题标题】:JWT token How to split claim and signatureJWT token 如何拆分声明和签名
【发布时间】:2016-07-12 08:49:21
【问题描述】:

在 JWT 令牌认证中,提到了“.”。用于拆分令牌的 3 个部分(标头、声明、签名)。但是,如果我的签名或编码声明包含“。”很难确定第 3 节的确切内容。 Anybosy遇到过这种情况或者有什么办法处理?

我使用 HMACSHA256(编码的 json 声明)生成了签名,但我得到了“。”在签名数据的中间。当我连接所有 3 个部分时,我会得到一个额外的“。”

【问题讨论】:

  • 如果这3部分的顺序是header、claim和signature,你应该知道在第二个“.”之后剩下的就是签名了,对吧?
  • 是的,Header 和 Claims 是 Base64URLEncoder 编码的内容。我的疑问是如果 Header/Claims 还包含“。”
  • 据我所知,他们在官方网站上使用 HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)

标签: c# .net authentication token


【解决方案1】:

JWT 令牌的三个部分都是base64 encoded,因此永远不会包含点字符。

即使您的声明或签名包含该字符,在对该部分进行 base64 编码后,该点也将不再出现在输出中。

【讨论】:

    猜你喜欢
    • 2018-03-04
    • 1970-01-01
    • 2019-01-02
    • 2020-12-15
    • 2023-02-03
    • 2019-02-26
    • 2018-09-07
    • 2018-05-08
    • 2016-05-02
    相关资源
    最近更新 更多