我为项目实现了承载令牌认证,并且工作正常……直到我注意到令牌过期后,“获取” API会返回“ 401未经授权”,而“发布” API则返回“ 404”找不到”。
帖子回复的原因是什么?如何解决?
Startup.cs中的令牌配置
// add JWT authentication
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ClockSkew = TimeSpan.FromMinutes(5),
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidIssuer = Configuration["JWT:issuer"],
ValidAudience = Configuration["JWT:audience"],
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes((string)Configuration["JWT:key"])),
RequireSignedTokens = true,
RequireExpirationTime = true
};
});
测试API
[HttpGet]
[Route("api/test1")]
public IActionResult test1()
{
return Ok("1");
}
[HttpPost]
[Route("api/test2")]
public IActionResult test2()
{
return Ok("2");
}
答案 0 :(得分:0)
我找到了问题。
使用自定义错误页面配置似乎导致了该问题。
app.UseStatusCodePagesWithReExecute("/Error/{0}");
我将其恢复为原始配置:
app.UseStatusCodePages();
,post API开始返回401。