Я пытаюсь расшифровать зашифрованный токен-носитель JWT.Мой код генерации выглядит следующим образом:
private string GenerateToken(IEnumerable<Claim> claims)
{
var signingKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration.GetValue<string>("JWTServerKey")));
var secret = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration.GetValue<string>("JWTServerSecret")));
var signingCreds = new SigningCredentials(signingKey, SecurityAlgorithms.HmacSha256);
var encryptingCreds = new EncryptingCredentials(secret, SecurityAlgorithms.Aes128KW, SecurityAlgorithms.Aes128CbcHmacSha256);
var handler = new JwtSecurityTokenHandler();
var token = handler.CreateJwtSecurityToken(
"test",
"test",
new ClaimsIdentity(claims),
DateTime.Now,
DateTime.Now.AddMinutes(20),
DateTime.Now,
signingCreds,
encryptingCreds);
return new JwtSecurityTokenHandler().WriteToken(token);
}
В файле startup.cs мой код выглядит следующим образом:
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = "test",
ValidAudience = "test",
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["JWTServerKey"])),
TokenDecryptionKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["JWTServerSecret"]))
};
Я получаю следующее исключение: "IDX10609: Расшифровка не удалась. НетКлючи пробовали ".Что я делаю неправильно?? РЕДАКТИРОВАТЬ:
Мой пример не включает в себя фактический ключ, но его длина 128 бит.