【发布时间】:2021-06-01 23:26:12
【问题描述】:
编辑:
于是我调试了我的代码,发现问题开始是因为这条线
var key = Environment.GetEnvironmentVariable("KEY");
在我的 ServiceExtentions 中返回一个 null,基本上我从 cmd 添加的 KEY 不起作用。知道为什么吗?
我正在尝试配置 JWT 以在登录时获取令牌,但我收到下图中的错误
我以管理员身份在 cmd 中添加了密钥:
C:\Windows\system32>setx KEY "ffc632ce-0053-4bab-93a4d14aaad" /M
这是我的登录控制器的代码
public async Task<IActionResult> Login([FromBody] LoginUserDTO userDTO)
{
_logger.LogInformation($"Login Attempt for {userDTO.Email} ");
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
try
{
if (!await _authManager.ValidateUser(userDTO))
{
return Unauthorized();
}
return Accepted(new { Token = await _authManager.CreateToken() });
}
catch (Exception ex)
{
_logger.LogError(ex, $"Something Went Wrong in the {nameof(Login)}");
return Problem($"Something Went Wrong in the {nameof(Login)}", statusCode: 500);
}
}
}
最后我在 json 中添加了什么
"Jwt": {
"Issuer": "HotelListingAPI",
"lifetime": 15
},
编辑 2:
我通过在 appsettings.json 文件中静态添加密钥解决了我的问题
【问题讨论】:
-
jwtSetting 或 key 变量没有被获取,我认为它是空的。你的配置文件中 KEY 的值是多少?
-
你应该将你的配置文件(或者至少是你在这段代码中获取数据的部分)添加到问题中
-
我将在我的配置文件中添加一个图像引用
-
能否调试您的代码,检查是否返回密钥。在第 31 行添加断点。并检查关键变量
-
它在 var key = Environment.GetEnvironmentVariable("KEY"); 处实际返回 null;
标签: c# visual-studio asp.net-core authentication jwt