我正在将Swashbuckle 5.6.0
用于具有OAuth2令牌身份验证的ASP.NET Web Api 2。当我尝试使用SwaggerUI中的红色感叹号按钮授权以[Authorize]
装饰的Controller动作时,出现错误
unsupported_grant_type
另一个问题似乎是SwaggerUI
发出GET
请求以获取令牌。在Postman
中,如果我向令牌端点发送了一个POST
请求,并带有所需的Content-Type
,则会得到一个有效的令牌响应。如果我改为在邮递员中发送GET
请求,该请求也不起作用,我会得到
unsupported_grant_type
Content-Type "application/x-www-form-urlencoded"
。但是,我找不到在Swashbuckle中为令牌请求设置此Content-Type
的任何方法(我可以使用IOperationFilters
为Controller操作成功设置标头)。那么,通过Swashbuckle有什么方法可以配置SwaggerUI以在针对OAuth2令牌终结点时使用具有特定Content-Type标头的POST?
答案 0 :(得分:0)
这取决于您是否具有1)真正的oAuth / OpenID实现或2)“仅”令牌端点和控制器上的[Authorize]属性。
如果您拥有#2,那么SO answer is here会提示您从选择的令牌端点中输入用户名和密码,并从apikey字段中设置client_id(如果需要),并且this SO answer允许您可以在“ apikey”字段中粘贴Bearer令牌。
如果您拥有#1,则必须确保知道“ auth”和“ token”端点,并根据swashbuckle oauth2 documentation
进行标记