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

时间:2016-10-07 21:32:17

标签: jwt azure-active-directory adal

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

JwtSecurityToken类在解析后只返回int32。所以,这不是一个好的指标。

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

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

iat:1475874457

exp" 1475878357

价值差别不大。

2 个答案:

答案 0 :(得分:35)

RFC 7519规定expiat声明值必须为NumericDate值。

NumericDateSection 2. Terminology中的最后一个定义,定义为自Epoch以来非毫秒)的数量:

  

表示来自的秒数的JSON数值     1970-01-01T00:00:00Z UTC直到指定的UTC日期/时间,     忽略闰秒。这相当于IEEE Std 1003.1,     2013年版[POSIX.1]定义"自纪元以来的秒数",in     其他每天占86400秒     可以表示非整数值。请参阅RFC 3339     [RFC3339]有关一般日期/时间和UTC的详细信息     特别

答案 1 :(得分:1)

Les 提供了正确的答案。如果要快速将 NumericDate 转换为日期,可以使用以下 PowerShell 命令:

$numericDate = '1636027948'
([DateTime]('1970,1,1')).AddSeconds($numericDate)

输出:

Thursday, 4 November 2021 12:12:28