JWT 中的 exp(过期时间)声明是什么格式
What format is the exp (Expiration Time) claim in a JWT
我正在使用 ADAL 库获取资源的访问令牌。有谁知道到期时间的格式是什么?进一步来说
"exp" (Expiration time) claim
.
JwtSecurityToken
class 简单地 returns 解析后的 int32。所以,这不是一个好的指标。
尝试将其解析为 TimeSpan
和 DateTime
,但这些值的间隔不是 90 分钟。几乎一样。
这是我从 fiddler 那里得到的 iat
和 exp
声明(使用 https://jwt.io/ 解析令牌)
iat
: 1475874457
exp
: 1475878357
数值相差不大。
RFC 7519 声明 exp
and iat
声明值必须是 NumericDate
值。
NumericDate
是Section 2. Terminology中的最后一个定义,定义为秒的个数(不是毫秒) 自纪元以来:
A JSON numeric value representing the number of seconds from
1970-01-01T00:00:00Z UTC until the specified UTC date/time,
ignoring leap seconds. This is equivalent to the IEEE Std 1003.1,
2013 Edition [POSIX.1] definition "Seconds Since the Epoch", in
which each day is accounted for by exactly 86400 seconds, other
than that non-integer values can be represented. See RFC 3339
[RFC3339] for details regarding date/times in general and UTC in
particular.
Les 提供了正确答案。如果您想快速将 NumericDate 转换为日期,可以使用以下 PowerShell 命令来完成:
$numericDate = '1636027948'
([DateTime]('1970,1,1')).AddSeconds($numericDate)
输出:
Thursday, 4 November 2021 12:12:28
我正在使用 ADAL 库获取资源的访问令牌。有谁知道到期时间的格式是什么?进一步来说
"exp" (Expiration time) claim
.
JwtSecurityToken
class 简单地 returns 解析后的 int32。所以,这不是一个好的指标。
尝试将其解析为 TimeSpan
和 DateTime
,但这些值的间隔不是 90 分钟。几乎一样。
这是我从 fiddler 那里得到的 iat
和 exp
声明(使用 https://jwt.io/ 解析令牌)
iat
: 1475874457
exp
: 1475878357
数值相差不大。
RFC 7519 声明 exp
and iat
声明值必须是 NumericDate
值。
NumericDate
是Section 2. Terminology中的最后一个定义,定义为秒的个数(不是毫秒) 自纪元以来:
A JSON numeric value representing the number of seconds from 1970-01-01T00:00:00Z UTC until the specified UTC date/time, ignoring leap seconds. This is equivalent to the IEEE Std 1003.1, 2013 Edition [POSIX.1] definition "Seconds Since the Epoch", in which each day is accounted for by exactly 86400 seconds, other than that non-integer values can be represented. See RFC 3339 [RFC3339] for details regarding date/times in general and UTC in particular.
Les 提供了正确答案。如果您想快速将 NumericDate 转换为日期,可以使用以下 PowerShell 命令来完成:
$numericDate = '1636027948'
([DateTime]('1970,1,1')).AddSeconds($numericDate)
输出:
Thursday, 4 November 2021 12:12:28