【发布时间】:2022-10-31 02:01:08
【问题描述】:
我想为我们的新 REST API 实现基于 JWT 的身份验证。但
var authSigningKey 在每个响应中都返回 null,实际上问题是
Encoding.UTF8.GetBytes(_configuration["JWT:Key"])
var authSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JWT:Key"]));
这是我的 Jwt 应用设置:
"JWT": {
"Key": "DhftOS5uphK3vmCJQrexST1RsyjZBjXWRgJMFPU4",
"ValidAudience": "http://localhost:44356",
"ValidIssuer": "http://localhost:44356"
}
这是我的代码:
private JwtSecurityToken GetToken(List<Claim> authClaims)
{
try
{
var authSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JWT:Key"]));
var token = new JwtSecurityToken(
issuer: _configuration["JWT:ValidIssuer"],
audience: _configuration["JWT:ValidAudience"],
expires: DateTime.Now.AddHours(3),
claims: authClaims,
signingCredentials: new SigningCredentials(authSigningKey, SecurityAlgorithms.HmacSha256)
);
return token;
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
在每个编码中它都是空的。
【问题讨论】:
标签: asp.net authentication jwt