gpt4 book ai didi

asp.net-core - .NET Core Web API、JWT 和 Swagger - 401 显示为 Undocumented 而不是 Unauthorized

转载 作者:行者123 更新时间:2023-12-03 19:14:48 27 4
gpt4 key购买 nike

我有一个 ASP.NET Core Web API 3 应用程序,它实现了 REST API 并使用 JWT 不记名 token 进行授权,以及 Swagger (Swashbuckle)。

我的 Controller 上有 [Authorize] 过滤器,例如:

[ApiController]
[Route("api/[controller]")]
[Authorize]
public class MyController : ControllerBase
{
}

Swagger 与我的 API 配合使用,我可以生成 JWT token 并将其提供给 Swagger,并且一切正常。

但是,如果我尝试使用 Swagger 在没有 JWT token 或无效 JWT token 的情况下访问我的 REST 端点之一,Swagger UI 将显示错误 401 无证 ,但我在网上看到的所有例子都表明我应该得到 401 未经授权 .

(当我使用 Postman 访问相同的 URL 时,它确实显示 401 Unauthorized。)

在我开始撕掉东西之前,有什么想法为什么我可能会得到 Undocumented 而不是 Unauthorized?

这是我看到的:

enter image description here

当我添加下面建议的属性时
 (ProducesResponseType(typeof(ProblemDetails), (int)HttpStatusCode.Unauthorized)])

我看到这个:

enter image description here

最佳答案

您可以在 Startup.cs 中添加 app.UseStatusCodePages()。
这将返回一个响应主体 response body

关于asp.net-core - .NET Core Web API、JWT 和 Swagger - 401 显示为 Undocumented 而不是 Unauthorized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61150329/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com