Код: Выделить всё
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 { new X509SecurityKey(jwtCert) }
};
tokenHandler.ValidateToken(id, tokenValidationParams
, out validatedToken);
Пожизненная проверка не удалась. У токена не указан срок действия.
Тип токена: 'System.IdentityModel.Tokens.Jwt.JwtSecurityToken'.
Скорее всего, это связано с тем, что метод проверки пытается преобразовать long в int, и поскольку он не может его преобразовать, он просто возвращает ноль, как указано в документации, показанной здесь.
Кто-нибудь добился успеха с этот механизм? Обратите внимание, что для подписи Jwt я использую сертификат X509.
Подробнее здесь: https://stackoverflow.com/questions/435 ... tion-fails
Мобильная версия