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

1K
Vistas
¿Cómo usar el token de actualización con fastapi?

Estoy tratando de encontrar un ejemplo del uso del token de actualización en fastapi. Los documentos de fastapi proporcionan un ejemplo de cómo crear un token de portador con una vida útil limitada, pero no cómo actualizar el token.

Para el matraz hay un matraz-jwt-extendido pero no encontré algo similar para fastapi.

¡Cualquier sugerencia será apreciada gracias!

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

0

Es posible que desee consultar fastapi-jwt-auth . Está inspirado en el matraz-jwt-extendido. Hay una buena documentación sobre cómo usar el token de actualización con buenos ejemplos .

Primero debe instalar el paquete: pip install fastapi-jwt-auth . Y configurar el secreto. Luego, al iniciar sesión, cree un token de actualización y un token de acceso y devuélvalo al usuario.

 from fastapi import FastAPI, Depends, HTTPException from fastapi_jwt_auth import AuthJWT from pydantic import BaseModel app = FastAPI() class User(BaseModel): email: str password: str class Settings(BaseModel): authjwt_secret_key: str = "secret" @AuthJWT.load_config def get_config(): return Settings() @app.post('/login') def login(user: User, Authorize: AuthJWT = Depends()): if user.email != "test@test.com" or user.password != "test": raise HTTPException(status_code=401,detail="Incorrect email or password") access_token = Authorize.create_access_token(subject=user.email) refresh_token = Authorize.create_refresh_token(subject=user.email) return {"access_token": access_token, "refresh_token": refresh_token}

En el siguiente paso, debe crear un punto final para actualizar el token de acceso.

 @app.post('/refresh') def refresh(Authorize: AuthJWT = Depends()): Authorize.jwt_refresh_token_required() current_user = Authorize.get_jwt_subject() new_access_token = Authorize.create_access_token(subject=current_user) return {"access_token": new_access_token} # Example protected Endpoint @app.get('/hello') def refresh(Authorize: AuthJWT = Depends()): Authorize.jwt_required() return {"hello": "world"}

Tenga en cuenta que este es solo un pequeño ejemplo desde una perspectiva de seguridad, debe intercambiar los tokens de actualización al actualizar y colocar en la lista negra el token anterior. La biblioteca ofrece, por lo tanto, el decorador @AuthJWT.token_in_denylist_loader . Podría implementar la lista negra con una base de datos en memoria que mantenga los tokens invalidados hasta que se alcance la fecha de vencimiento. También en producción elige un verdadero secreto.

over 4 years ago · Santiago Trujillo Denunciar

0

Generé mi propio token, de acuerdo con el intervalo de tiempo entre esta solicitud y la última solicitud para determinar si actualizo el token, si el tiempo excede el tiempo programado para reemplazar el token, mientras notifico al front-end que guarde el nuevo 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