我生成了一个JWT,其中某些声明我理解得很好,但头部有一个称为kid
的声明。有人知道它是什么意思吗?
我是使用auth0.com生成的令牌。
kid
是一个可选的头声明,用于保存密钥标识符。当您有多个密钥用于签署令牌,并且需要查找正确的密钥来验证签名时,这个头声明特别有用。
一旦签署,JWT就成为了JWS。请考虑来自RFC 7515的定义:
kid
(密钥标识符)头参数是一个提示,指示用于保护JWS的密钥。该参数允许发送者明确向接收者信号变更密钥。关于kid
值的结构没有具体规定。其值必须是区分大小写的字符串。使用此头参数是可选的。当与JWK一起使用时,
kid
值用于匹配JWK的kid
参数值。
HS256
才有密钥标识符?或者说 只有 HS256
使用情况需要进行密钥查找/识别? - Daikid
(密钥 ID)声明是一个可选的头部声明,用于指定用于验证签名的密钥。
它在这里描述:http://self-issued.info/docs/draft-jones-json-web-token-01.html#ReservedHeaderParameterName