Как указать функцию, используемую для проверки подлинности Basi c с API Flask -connexion и swagger-2.0 - PullRequest
0 голосов
/ 12 января 2020

Я использую API Swagger 2.0 с Flask -connexion.

В файле swagger.yml я установил определение безопасности: basi c:

  BasicAuth:
    type: basic

И затем я добавил эту защиту в путь, который я хочу защитить.

# Tenant paths
  /tenant:
    get:
      operationId: tenant.read_all
      tags:
        - Tenant
      summary: Read the entire set of tenants, sorted by name
      description: Read the entire set of tenants, sorted by name
      security:
        - basicAuth: []
      responses:
        200:
          description: Successfully read tenant set operation
          schema:
            type: array
            items:
              $ref: '#/definitions/Tenant'

Но я не понимаю, как указать функцию, которая будет проверять логин и пароль. Мне нужно собрать эти параметры и проверить их перед вызовом функции path.

Если это неявно определено с использованием, например, Flask -Login или Flask -BasicAuth?

Или это должно быть сделано явно, как без Flask -connexion, добавив код в мой файл tenant.py, такой как:

@auth_basic.login_required
def read_all():
...

Я ожидал бы иметь Flask -connexion перенаправить на функцию аутентификации, которая проверит логин и пароль, а затем перенаправить на метод / функцию пути.

1 Ответ

0 голосов
/ 12 января 2020

https://connexion.readthedocs.io/en/latest/security.html#basic -утентификация

Вы должны определить в своем файле Swagger:

securityDefinitions: basic: type: basic x-basicInfoFunc: app.basic_auth

x-basicInfoFun c отобразится на функцию проверки, в этом примере функция basic_auth находится в файле app .

Полный пример с Swagger: https://github.com/zalando/connexion/tree/master/examples/swagger2/basicauth

Полный пример с OpenApi: https://github.com/zalando/connexion/tree/master/examples/openapi3/basicauth

...