【问题标题】:Flask RESTPlus swagger interface doesn't pass Authorisation header on to curl requestFlask RESTPlus swagger 接口不会将 Authorization 标头传递给 curl 请求
【发布时间】:2020-06-04 22:38:25
【问题描述】:

使用带有 Bearer 令牌的 swagger 接口的授权功能运行最新的(由于切换到烧瓶 REST-X 而现在是旧的)烧瓶 RESTPlus,如下所示:

authorizations = {
'apikey': {
    'type': 'apiKey',
    'in': 'header',
    'name': 'Bearer '
}

但是虽然swagger界面中出现了“Authorise”框,而且我可以在里面放一个token,但是它并没有被添加到发出的请求或者swagger提供的curl格式中,所以我们可以看得很清楚它没有被捡起。这是怎么回事,我该如何解决?

【问题讨论】:

  • 您的代码是否还有将security 添加到操作的注释?这需要将Authorization 标头附加到操作中。
  • 谢谢。这是解决方案,所以您可以将其添加为答案,我会接受。

标签: swagger flask-restplus


【解决方案1】:

确保代码还具有将security 添加到单个操作或全局的注释。这是将Authorization 标头实际附加到操作所必需的。

换言之,生成的 OpenAPI 定义应包含以下内容。

如果使用 OpenAPI 2.0:

swagger: '2.0'

securityDefinitions:
  apikey:
    type: apiKey
    in: header
    name: Authorization

security:
  - apiKey: []

如果使用 OpenAPI 3.0:

openapi: 3.0.0

components:
  securitySchemes:
    apikey:
      type: apiKey
      in: header
      name: Authorization

    # or using OAS3 Bearer auth scheme
    # apiKey:
    #  type: http
    #  scheme: bearer

security:
  - apiKey: []

【讨论】:

    猜你喜欢
    • 2020-09-18
    • 2018-11-15
    • 2016-04-21
    • 2013-11-23
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    相关资源
    最近更新 更多