【问题标题】:JWT jti uniquenessJWT jti 唯一性
【发布时间】:2017-08-18 19:00:20
【问题描述】:

我在理解如何在 JWT 中使用 jti 声明时遇到了一些麻烦。据我在其他 SO 问题和在线文档中看到的,想法是它们应该是独一无二的,但在什么范围内是独一无二的?每个站点/应用程序一个 jti?每个令牌/用户一个 jti?而且,如果我有一个特定于用户的 jti,那是否会取消 JWT 无状态的点,因为我需要以某种方式跟踪令牌?

我很想得到一些帮助来了解如何使用 jti,或者我可能根本不需要它。

【问题讨论】:

    标签: jwt


    【解决方案1】:

    jti应用范围内应该是唯一的,以防止两个相等的 JWT。

    RFC 7519

    4.1.7。 “jti”(JWT ID)声明

    “jti”(JWT ID)声明为 JWT 提供了唯一标识符。 标识符值的分配方式必须确保 相同值的概率可以忽略不计 意外分配给不同的数据对象;如果申请 使用多个发行者,必须防止值之间的冲突 也由不同的发行人制作。可以使用“jti”声明 以防止 JWT 被重放。 “jti”值是一个案例- 敏感字符串。使用此声明是可选的。

    如果您需要一个黑名单来撤销令牌并确保相同的 JWT 不会被两次发布(当包含相同的内容而没有时间戳声明时),这可能会很有用

    【讨论】:

    • 我认为“相同的 JWT 不会发布两次”是让我失望的原因。在同一个应用程序中,同一个用户将获得相同的令牌,除非时间戳发生变化(我也不确定重新发布令牌的频率;在每个页面加载似乎都过大),但这是一个完全不同的问题。
    猜你喜欢
    • 2019-03-29
    • 2015-05-08
    • 2023-03-12
    • 1970-01-01
    • 2021-04-30
    • 2016-08-05
    • 2017-11-23
    • 1970-01-01
    • 2018-09-24
    相关资源
    最近更新 更多