使用 JWT 令牌的 jti 声明作为不透明令牌

Posted

技术标签:

【中文标题】使用 JWT 令牌的 jti 声明作为不透明令牌【英文标题】:Using jti claim of JWT tokens as an opaque token 【发布时间】:2021-04-30 21:41:42 【问题描述】:

我有一个用例,我需要从服务器获取 JWT 和 Opaque 令牌(用于测试目的)。但是只能将 JWT 或 Opaque 令牌配置为在应用程序中检索。

我可以将 JWT 的 jti 声明用作不透明令牌吗?根据官方文档,jti 是每个 JWT 令牌的随机唯一 ID。所以我不需要编写任何逻辑来触发另一个更改配置的请求以获得不透明的令牌。

【问题讨论】:

【参考方案1】:

根据官方文档

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

所以我们可以使用它:)

【讨论】:

以上是关于使用 JWT 令牌的 jti 声明作为不透明令牌的主要内容,如果未能解决你的问题,请参考以下文章

JWT jti 唯一性

JWT 访问令牌:矛盾?

通过 Azure AD 验证不透明的访问令牌

JWT Web 令牌授权验证不提供声明数据

如何从 Keycloak JWT 访问令牌中删除属性?

使用 JWT 的 Oauth 2.0 授权