JWT 中的 exp(过期时间)声明是什么格式

What format is the exp (Expiration Time) claim in a JWT

我正在使用 ADAL 库获取资源的访问令牌。有谁知道到期时间的格式是什么?进一步来说 "exp" (Expiration time) claim.

JwtSecurityToken class 简单地 returns 解析后的 int32。所以,这不是一个好的指标。

尝试将其解析为 TimeSpanDateTime,但这些值的间隔不是 90 分钟。几乎一样。

这是我从 fiddler 那里得到的 iatexp 声明(使用 https://jwt.io/ 解析令牌)

iat: 1475874457

exp: 1475878357

数值相差不大。

RFC 7519 声明 exp and iat 声明值必须是 NumericDate 值。

NumericDateSection 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