Swashbuckle Swagger UI OAuth2 GET令牌请求unsupported_grant_type

问题描述 投票:1回答:1

Problems

  • 我使用Swashbuckle 5.6.0进行ASP.NET Web Api 2和OAuth2令牌身份验证。当我尝试使用SwaggerUI中的红色感叹号按钮授权使用[Authorize]修饰的Controller操作时,我收到错误 unsupported_grant_type
  • 另一个问题似乎是SwaggerUI提出GET请求获取令牌。在Postman中,如果我使用所需的POST向令牌端点发送Content-Type请求,我会收到有效的令牌响应。如果我在邮差发送GET请求它也不起作用,我得到 unsupported_grant_type

Researched so far

  • 谷歌搜索此错误似乎表明对令牌端点的请求需要一个Content-Type "application/x-www-form-urlencoded"。但是,我找不到任何方法在Swashbuckle中为令牌请求设置此Content-Type(我可以使用IOperationFilters为Controller操作成功设置标头)。

Question

那么,有什么方法可以通过Swashbuckle我可以配置SwaggerUI在针对OAuth2令牌端点时使用具有特定Content-Type标头的POST?

asp.net-web-api oauth-2.0 swagger swagger-ui swashbuckle
1个回答
0
投票

这取决于您是否具有1)真正的oAuth / OpenID实现,或2)'只是'控制器上的令牌端点和[授权]属性。

如果你有#2,那么SO answer is here会从你选择的令牌端点提示输入用户名和密码,并从apikey字段设置client_id(如果需要),this SO answer允许你在'apikey中粘贴一个Bearer令牌'领域。

如果你有#1那么你必须确保你知道你的'auth'和'token'端点并根据swashbuckle oauth2 documentation标记它们

© www.soinside.com 2019 - 2024. All rights reserved.