0

我正在尝试创建需要发送到外部令牌端点的 JWT。外部提供者要求 POST 正文具有由多个参数组成的 JWT,其中一个是“jti”。我浏览了文档并知道“jti”的用途。

“jti”(JWT ID)声明为 JWT 提供了唯一标识符。标识符值必须由您分配,以确保相同的值被意外分配给不同的数据对象的可能性可以忽略不计;如果应用程序使用多个发行者,则必须防止不同发行者产生的值之间的冲突。“jti”声明可用于防止 JWT 被重放。“jti”值是区分大小写的字符串。

现在要创建 JWT,我使用的是org.jose4j.jwt.JwtClaims,它有一个方法setGeneratedJwtId(),但是当我浏览文档https://javadoc.io/doc/org.bitbucket.b_c/jose4j/0.4 时。 4/org/jose4j/jwt/JwtClaims.html#setGeneratedJwtId(),关于此方法的信息不多。

从方法名称来看,它相当暗示它正在生成某种 id,但我需要知道生成的 id 类型是什么,字符的长度是字母数字还是任何其他类型。

谁能提供这方面的信息。

4

1 回答 1

2

生成的“jti”声明值将是 base64url 编码的随机 16 字节(128 位),即 22 个字母数字字符以及“_”和“-”。

于 2021-11-26T13:38:14.340 回答