http://www.niso.org/apps/group_public/download.php/14003/SP_Jones_JSON_isqv26no3.pdf
дал JwtToken, настроив полезную нагрузку, как показано ниже
var payload = new JwtPayload
{
{"aud", "wellmark.com" },
{"iss", "wellmark" },
{"iat", DateTime.Now.Ticks },
{"exp", DateTime.Now.AddDays(90).Ticks },
};
Причина, по которой мне пришлось использовать тики, заключается в том, что это единственный способ получить целочисленное значение для выпущенных в момент истечения срока действия. Я согласен, что тики на самом деле длинные, а не целые, но это был единственный способ.
Теперь, когда я возвращаюсь для проверки токена, я делаю следующее
var tokenValidationParams = new TokenValidationParameters
{
IssuerSigningKey = new X509SecurityKey(jwtCert),
ValidAudience = "masked",
ValidIssuer = "masked",
IssuerSigningKeyResolver = (string token, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, string kid, TokenValidationParameters validationParameters) => new List<X509SecurityKey> { new X509SecurityKey(jwtCert) }
};
tokenHandler.ValidateToken(id, tokenValidationParams
, out validatedToken);
Однако неверное высказывание
Проверка продолжительности жизни не удалась. Токену не хватает времени истечения. Tokentype: 'System.IdentityModel.Tokens.Jwt.JwtSecurityToken'.
Это, скорее всего, потому, что метод проверки пытается преобразовать long в int, и потому что он не может преобразовать его, он просто возвращает ноль, как указано в показанной документацииВот.
Кто-нибудь имел успех с этим механизмом. Обратите внимание, что я использую сертификат X509 для подписи моего Jwt.
Narasimham