JWT中的sharedSecret是什么

JWT中的sharedSecret是什么,jwt,silhouette,Jwt,Silhouette,在剪影中,可以使用以下类创建JWT验证器 JWTAuthenticatorSettings(fieldName: String = "X-Auth-Token", requestParts: Option[Seq[api.util.RequestPart.Value]] = Some(Seq(RequestPart.Headers)), issuerClaim: String = "play-silhouette", authenticatorIdleTimeout: Option[Finite

剪影
中,可以使用以下类创建JWT验证器

JWTAuthenticatorSettings(fieldName: String = "X-Auth-Token", requestParts: Option[Seq[api.util.RequestPart.Value]] = Some(Seq(RequestPart.Headers)), issuerClaim: String = "play-silhouette", authenticatorIdleTimeout: Option[FiniteDuration] = None, authenticatorExpiry: FiniteDuration = 12 hours, sharedSecret: String)
sharedSecret
的用途是什么?它是应用程序在签署JWT头/索赔有效负载时使用的吗

HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  sharedSecret)

看看这个公式,它看起来像是
sharedSecret
应该是
secret
。这一点很重要,因为它不应与客户端共享。通常,只有一个(或多个)用于所有客户端的
secret
参数。也许在这个意义上,它是共享的。

在JWT的HS256方案中,秘密在客户端(创建JWT)和服务器(验证JWT)之间共享。您可以对每个客户机使用相同的密码,但是给定的客户机可以模拟另一个客户机。你是否在乎取决于你的威胁模型。在使用非对称密钥的RS256方案中,客户端使用其私钥对JWT进行签名,服务器使用该客户端的公钥对其进行验证。同样,您可以(但可能不应该)为多个客户端使用相同的密钥对。