【问题标题】:In a Python Flask JWT, what is `sub`?在 Python Flask JWT 中,什么是 `sub`?
【发布时间】:2021-10-14 15:53:15
【问题描述】:

以下是使用 Python 3 中的 Flask-JWT-Extended 库生成的示例 JWT:

{
    exp: 1628670229,
    fresh: false,
    iat: 1628666629,
    jti: "4ded281c-90a1-4a46-9360-2cbb7ac47926",
    nbf: 1628666629,
    sub: "17884f96-d4d5-43bd-9add-734340b761ac",
}

我可以找到关于所有这些键/值对的文档,sub 除外。这是什么?

【问题讨论】:

    标签: python jwt


    【解决方案1】:

    According to the JWT spec, sub is a Subject claim:

    “子”(主体)声明标识了作为主体的主体 JWT 的主题。 JWT 中的声明通常是语句 关于主题。主题值必须被限定为 在发行人的上下文中是本地唯一的,或者是全球唯一的。 此声明的处理通常是特定于应用程序的。这 "sub" 值是包含 StringOrURI 的区分大小写的字符串 价值。使用此声明是可选的。

    Flask-JWT-Extended's documentation 表示这是用于存储身份(用户 ID)的默认密钥。

    JWT_IDENTITY_CLAIM
    JWT 中用作身份来源的声明。 默认值:"sub"

    【讨论】:

    • 是的,这是正确的,谢谢。我认为JTI 是主题的标识符,但它实际上是 JWT 的标识符。哎呀!在我的普通用例中,sub 是用户的 UUID。
    猜你喜欢
    • 2020-07-18
    • 2021-12-04
    • 2013-08-06
    • 2018-10-31
    • 1970-01-01
    • 2022-01-21
    • 2020-11-23
    • 2017-09-11
    • 1970-01-01
    相关资源
    最近更新 更多