22 ArgumentNullException.ThrowIfNull(principal);
24 var userIdClaim = principal.FindFirst(JwtRegisteredClaimNames.Sub);
25 if (userIdClaim ==
default)
31 userId = Int64.Parse(userIdClaim.Value, CultureInfo.InvariantCulture);
35 throw new InvalidOperationException(
"Failed to parse user ID!", e);
55 public static DateTimeOffset
ParseTime(
this ClaimsPrincipal principal,
string claimName)
57 ArgumentNullException.ThrowIfNull(principal);
58 ArgumentNullException.ThrowIfNull(claimName);
60 var claim = principal.FindFirst(claimName);
62 throw new InvalidOperationException($
"Missing '{claimName}' claim!");
66 return new DateTimeOffset(
68 Int64.Parse(claim.Value, CultureInfo.InvariantCulture)));
72 throw new InvalidOperationException($
"Failed to parse claim {claimName}: '{claim.Value}'!", ex);