Flasgger - Добавить авторизацию на предъявителя - PullRequest
2 голосов
/ 27 мая 2020

Я запускаю приложение flask и использую flasgger для создания спецификаций Swagger, а также пользовательского интерфейса Swagger. Мой API требует аутентификации запросов с использованием токена на предъявителя. Я могу получить кнопку на странице и установить токен. Но не через запросы. Я использую OpenAPI 3.0.3. Ниже мой код:

from flasgger import Swagger

swagger_template = {
    'components': {
        'securitySchemes': {
            'bearerAuth': {
                'type': 'http',
                'scheme': 'bearer',
                'bearerFormat': 'JWT'
            }
        },
        'security': {
            'bearerAuth': []
        }
    }
}

# Register controllers
api = Api(app)
swagger = Swagger(app=app, config={
    'headers': [

    ],
    'title': 'Model Design Application API',
    'specs': [
        {
            'endpoint': 'apispec',
            'route': '/apispec.json'
        }
    ],
    'openapi': '3.0.3'
}, template=swagger_template)

Это токен, который нужно установить в пользовательском интерфейсе Swagger:

enter image description here

Это Пользовательский интерфейс, который я получаю в Swagger:

enter image description here

Это генерируемый apispe c. json:

{
  "definitions": {
    "User": {
      "properties": {
        "username": {
          "default": "Steven Wilson", 
          "description": "The name of the user", 
          "type": "string"
        }
      }
    }
  }, 
  "info": {
    "description": "powered by Flasgger", 
    "termsOfService": "/tos", 
    "title": "Model Design Application API", 
    "version": "0.0.1"
  }, 
  "openapi": "3.0.3", 
  "paths": {
    "/profile": {
      "get": {
        "description": "It works also with swag_from, schemas and spec_dict<br/>", 
        "responses": {
          "200": {
            "description": "A single user item", 
            "schema": {
              "$ref": "#/definitions/User"
            }
          }
        }, 
        "summary": "This examples uses FlaskRESTful Resource"
      }
    }
  }, 
  "security": {
    "bearerAuth": []
  }, 
  "securitySchemes": {
    "bearerAuth": {
      "bearerFormat": "JWT", 
      "scheme": "bearer", 
      "type": "http"
    }
  }
}

Пожалуйста посоветуй. Любая помощь приветствуется.

...