【发布时间】:2019-04-28 11:02:48
【问题描述】:
我正在尝试用这个 sn-p 对我的 JWt 进行签名和编码:
var claims = new Claim[] { new SomeClaimes() };
var scKey = Encoding.UTF8.GetBytes("SOME KEY");
var ecKey = Encoding.UTF8.GetBytes("SOME OTHER KEY");
var tokenDescriptor = new SecurityTokenDescriptor {
Subject = new ClaimsIdentity(claims),
SigningCredentials = new SigningCredentials(
new SymmetricSecurityKey(
scKey),
SecurityAlgorithms.HmacSha512),
EncryptingCredentials = new EncryptingCredentials(
new SymmetricSecurityKey(
ecKey),
// I tryied all possible combination of algorithms here:
SecurityAlgorithms.XXXX,
SecurityAlgorithms.YYYY),
Issuer = "My Jwt Issuer",
Audience = "My Jwt Audience",
IssuedAt = DateTime.UtcNow,
Expires = DateTime.Now.AddDays(7),
};
var tokenHandler = new JwtSecurityTokenHandler();
var token = tokenHandler.CreateJwtSecurityToken(tokenDescriptor);
var jwt = tokenHandler.WriteToken(token);
但是当我运行代码时,我得到了错误:
加密失败。不支持:算法:“{0}”,SecurityKey:“{1}”。
在上面的代码中,{0} 和 {1} 是 XXXX 和 YYYY 的任意组合(是的,我写了一个反射 sn-p 并尝试了它们的所有可能组合)。支持哪些算法对签名的 JWT 进行编码(和解码)?
【问题讨论】:
标签: c# .net-core jwt encryption-symmetric netcoreapp2.1