Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1K
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda