What format is the exp (Expiration Time) claim in a JWT
I am using ADAL library to get access token for a resource. Does anyone know what format is the expiration time in ? more specifically
"exp" (Expiration time) claim
.
JwtSecurityToken
class simply returns int32 after parsing. So, that is not a good indicator.
Tried parsing it to TimeSpan
and DateTime
but the values are not 90 minutes apart. It's almost the same.
This is what I get from fiddler for iat
and exp
claim (used https://jwt.io/ to parse the token)
iat
: 1475874457
exp
: 1475878357
The values are not that much apart.
Solution 1:
RFC 7519 states that the exp
and iat
claim values must be NumericDate
values.
NumericDate
is the last definition in Section 2. Terminology, and is defined as the number of seconds (not milliseconds) since Epoch:
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.
Solution 2:
Les provided the right answer. If you want to quickly convert a NumericDate to a date, you can do it using the following PowerShell command:
$numericDate = '1636027948'
([DateTime]('1970,1,1')).AddSeconds($numericDate)
Output:
Thursday, 4 November 2021 12:12:28