根据the docs of Identity Server,每个令牌中始终存在以下四个声明:
鉴于生命周期是根据过期时间计算的,所以我理解除最后一个代码以外的所有代码。代码“ NBF ”代表什么?
我什至检查了disambiguation on Wikipedia,但根本没有与令牌相关的信息。
奖金问题。代码具有不同格式的原因是什么?我不禁想知道为什么 client_id 没有遵循相同的模式并设置为 cid 。我感觉到一些历史背景...
答案 0 :(得分:1)
这就是nbf
的意思。
此声明的使用是可选的,它标识了令牌必须被接受的时间 。
请参见RFC 7519中的定义:
4.1.5. "nbf" (Not Before) Claim
nbf
(不早于)声明标识了 不得接受JWT进行处理。的处理nbf
声明要求当前日期/时间必须晚于或 等于nbf
声明中列出的不早日期/时间。 实施者可以留出一些余地,通常不会再留有余地 几分钟,以解决时钟偏斜。它的值必须是 包含NumericDate值的数字。该声明的用途是 可选。
令牌的生命周期从nbf
声明中指定的时间开始,到exp
声明中指定的时间结束。
解决您的奖励问题:
重要的是要强调nbf
是standard的声明registered in IANA,而client_id
不是。但这不会阻止使用client_id
。
使用JWT的人员可以随意定义索赔名称。但是,RFC 7519中定义的声明故意较短:
所有名称都简短,因为JWT的核心目标是使表示形式紧凑。
该文档还声明以下内容:
由于此规范的核心目标是使结果表示形式紧凑,因此建议名称简短-即,在没有令人信服的理由的情况下不要超过8个字符。