es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo añadir una ventana emergente de contraseña y nombre de usuario para Django Swagger?

Estoy utilizando la biblioteca drf-yasg para el Swagger de Django. Necesito agregar la autenticación a nivel de nombre de usuario y contraseña. Hay tres esquemas de seguridad disponibles en esta biblioteca: “basic”, “apiKey” u “oauth2”.
¿Hay alguna forma de configurar mis credenciales para Swagger en la configuración de mi proyecto de Django y autenticar los documentos de Swagger basados en eso?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible autenticar la documentación de la API Swagger basada en las credenciales establecidas en la configuración del proyecto Django utilizando la biblioteca drf-yasg.

    Para hacer esto, puedes usar el esquema de seguridad “basic” y especificar el nombre de usuario y la contraseña en la configuración de tu proyecto.

    Primero, en la configuración de tu proyecto Django, agrega la siguiente configuración:

    SWAGGER_SETTINGS = { 
        "SECURITY_DEFINITIONS": { 
            "basic": { 
                "type": "basic" 
            } 
        }, 
        "BASIC_AUTH_USERNAME": "TU_NOMBRE_DE_USUARIO_AQUÍ", 
        "BASIC_AUTH_PASSWORD": "TU_CONTRASEÑA_AQUÍ" 
    }
    

    Aquí, estamos definiendo el esquema de seguridad “basic” y especificando el tipo como “basic”. También estamos configurando el nombre de usuario y la contraseña para este esquema de seguridad como valores de las configuraciones “BASIC_AUTH_USERNAME” y “BASIC_AUTH_PASSWORD”, respectivamente.

    A continuación, en tu vista de documentación Swagger/OpenAPI, agrega el decorador “@swagger_auto_schema” a la función o método de la vista, y especifica el parámetro “security” como “basic”:

    from drf_yasg.utils import swagger_auto_schema 
    
    @swagger_auto_schema(security=[{"basic": []}]) 
    def mi_vista(request): 
        # lógica de la vista aquí 
    

    Aquí, estamos usando el decorador “@swagger_auto_schema” para especificar el esquema de seguridad “basic” para nuestra función o método de vista.

    Ahora, al acceder a la documentación de tu API Swagger, se le pedirá al usuario que ingrese sus credenciales, y la documentación solo será accesible si se ingresan el nombre de usuario y la contraseña correctos.

Comments are closed.