c# - 为什么错误 500 Web Api JWT 在服务器上进行身份验证?
问题描述
我有以下方法来使用 JWT 对用户进行身份验证
public async Task<IActionResult> Login([FromBody] Usuario usuario)
if (ModelState.IsValid)
{
var result = await _signInManager.PasswordSignInAsync(usuario.Email, usuario.Password, isPersistent: false, lockoutOnFailure: false);
if (result.Succeeded)
{
return BuildTokenAsync(usuario);
}
else
{
ModelState.AddModelError(string.Empty, "Invalid login attempt.");
return BadRequest(ModelState);
}
}
private IActionResult BuildTokenAsync(Usuario usuario)
{
var claims = new[]
{
new Claim(JwtRegisteredClaimNames.UniqueName, usuario.Email),
new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())
};
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["Llave_super_secreta"]));
var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
var expiration = DateTime.UtcNow.AddHours(1);
JwtSecurityToken token = new JwtSecurityToken(
issuer: "https://mydomain",
audience: "https://mydomain",
claims: claims,
expires: expiration,
signingCredentials: creds);
return Ok(new
{
token = new JwtSecurityTokenHandler().WriteToken(token),
expiration = expiration
});
}
}
在localhost中没有问题,给我发token就可以了。
但是在服务中,出现错误500。
如果我向服务器上的另一个服务发送呼叫,则没有问题。一切都很好,只是为了验证我有问题。
服务器具有 SSL 证书。
知道它可能是什么吗?
解决方案
我发现了问题。解决方案是环境变量没有被传递给服务器
推荐阅读
- java - Issue is Java Main class..its not running properly
- javascript - How to make canvas rectangule move with ease stops up and down?
- php - 如何在 PHP 中使用全局多维数组?
- php - Using Float Quantity in Order Menu
- c - I'm having problems with OpenGL and i cannot find where the errors are...?
- .net - HealthChecks-UI .net core polling time configuration
- python - Returning emoji and word after hashtag in python
- reactjs - Gatsby StaticImage src 值不通过点表示法接受
- python - 如何从 tkinter 获取标签小部件?
- javascript - 在 React 中删除 Redux 数据