代码之家  ›  专栏  ›  技术社区  ›  Artem

什么是签名身份验证令牌?

  •  21
  • Artem  · 技术社区  · 7 年前

    目前,我正在学习JWT,并从基于令牌的身份验证开始。我听不懂 the article :

    基于令牌的身份验证通过确保每个请求 服务器附带 签署 服务器验证的令牌 真实性,然后才响应请求。

    什么是签名令牌?签署代币是什么意思?我找不到这样的问题。

    1 回复  |  直到 7 年前
        1
  •  24
  •   Community CDub    3 年前

    签名可以是 已证实的 .

    您试图解决的主要问题是:服务器创建一些任意值,即令牌,并将其提供给客户端。客户机随后将其返回给服务器作为某种证据(例如,证明它们经过身份验证)。现在,服务器如何才能确保令牌是真实的,而客户机并不仅仅是伪造的?

    这就是签名的来源。它是令牌的一部分,服务器可以验证它之前是否创建了该签名,以及该签名是否是为该特定令牌创建的。简而言之,签名是令牌内容的哈希加上只有服务器拥有的秘密;为了验证签名,服务器重复令牌内容的哈希和它只有的秘密,如果匹配,这意味着令牌的签名必须以相同的方式创建,以确保两个期望的真实性属性。

    有关如何具体计算JWT签名的详细信息,请阅读 the specification .