Swagger UI身份验证标头

3

目前我有一个过程,用户可以通过该过程获得JSON Web Token(JWT)。然后,此JWT用于设置所有API的HTTP请求的X-Access-Token标头。我正在努力弄清楚如何做到这一点。

我认为可以在api_definition.yaml中添加字段,以便用户可以输入其JWT,然后将其添加为所有调用的标头。


尝试解决方案

我将以下内容添加到api_definition.yaml

securityDefinitions:
  UserSecurity:
    type: apiKey
    in: header
    name: X-Access-Token

security: [ { jwt: [] } ]

这似乎不会改变Swagger-UI中的任何内容,我也不确定如何使用户能够输入他们的密钥?


Swagger UI的哪个版本 - 2.x还是3.x? - Helen
@Helen swagger v 2.0 - Sara Fuerst
@Helen 我搞错了,我正在使用 Swagger 2.0 和 Swagger UI 3.0.3。 - Sara Fuerst
请查看我对于这个问题的答案:https://dev59.com/dqHia4cB1Zd3GeqPRElB#47725647 - Nisal Gunawardana
1个回答

4
< p >在< code >security关键字中的安全方案名必须与securityDefinitions中使用的名称相匹配:

securityDefinitions:
  UserSecurity:
    type: apiKey
    in: header
    name: X-Access-Token

security:
  - UserSecurity: []

然后您应该在Swagger UI标题中看到授权按钮。

似乎授权按钮仍未显示。 - Sara Fuerst
1
我还需要添加:方案:- http - Sara Fuerst

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接