Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

464
Vistas
Dependencia de FastAPI OAuth2PasswordRequestForm que provoca un error en la solicitud

Estoy usando el esquema de autenticación detallado en la guía del usuario de FastAPI (token JWT/Bearer). Cuando intento obtener un token del punto final /token la solicitud falla antes de que se ejecute la función de operación de ruta. Aquí está la función en cuestión:

 async def login_for_access_token(form_data: OAuth2PasswordRequestForm = Depends(), session: SessionLocal = Depends(get_db)): user = authenticate_user(session, form_data.username, form_data.password) if not user: raise HTTPException( status_code=status.HTTP_401_UNAUTHORIZED, detail="Incorrect username or password", headers={"WWW-Authenticate": "Bearer"}, ) access_token = create_access_token(data={"sub": user.id}) return {"access_token": access_token, "token_type": "bearer"}

Normalmente uso puntos de interrupción para ayudar a descubrir qué es lo que va mal en estas situaciones, pero la llamada falla antes de que se ejecute cualquier código en la función, lo que me lleva a creer que el problema está en la dependencia OAuth2PasswordRequestForm . Verifiqué que este era el problema al deshabilitar el form_data parameter y pude ejecutar la solicitud completa.

Los errores que recibo son bastante escasos en los detalles. Esto es lo que obtengo en la consola: INFO: 127.0.0.1:52261 - "POST /token HTTP/1.1" 400 Bad Request

Y esto es lo que veo en la interfaz de usuario de Swagger:

ingrese la descripción de la imagen aquí

Esto funcionó para mí en el formato de un solo archivo utilizado en el tutorial, pero desde entonces he dividido las cosas en diferentes archivos para mantener organizado mi proyecto más grande. Tengo la sensación de que me perdí algo en algún lugar mientras reorganizaba este código, pero parece que no puedo entender qué está causando esto.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Por supuesto, la solución a este problema estaba en los documentos . El problema era que me faltaba la dependencia python-multipart . Simplemente ejecuté pip install python-multipart y reinicié mi servidor y luego pude autenticar.

over 4 years ago · Santiago Trujillo Denunciar

0

Debe configurar response_model en token después de haber creado un esquema de token como este:

 class Token(BaseModel): access_token: str token_type: str

por lo que su código debería verse así

@router.post('/token', response_body=Token)

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda