Curso de FastAPI: 145 Funciones para Crear un Token de Acceso y Obtener el Usuario Actual mediante un Token

Posted by

FastAPI Curso: 145 Funciones Crear un Token de Acceso y Obtener el Usuario Actual desde un Token

FastAPI Curso: 145 Funciones Crear un Token de Acceso y Obtener el Usuario Actual desde un Token

En este tutorial, aprenderemos a crear un token de acceso y cómo obtener el usuario actual desde ese token en FastAPI.

Crear un Token de Acceso

Para crear un token de acceso en FastAPI, primero necesitamos importar los módulos necesarios y generar un token único para cada usuario. Podemos hacerlo usando bibliotecas como PyJWT.


    import jwt
    from fastapi import FastAPI
    app = FastAPI()
    
    @app.get("/get_token")
    def create_token(username: str, password: str):
        payload = {"username": username, "password": password}
        token = jwt.encode(payload, "secret_key", algorithm="HS256")
        return {"token": token}
    

Obtener el Usuario Actual desde un Token

Una vez que tenemos un token de acceso, podemos usarlo para autenticar a los usuarios y obtener información sobre ellos. Para hacerlo, necesitamos validar el token y decodificarlo para obtener los datos del usuario.


    @app.get("/get_user")
    def get_user(token: str):
        try:
            payload = jwt.decode(token, "secret_key", algorithms=["HS256"])
            username = payload["username"]
            return {"username": username}
        except jwt.ExpiredSignatureError:
            return {"error": "Token expirado"}
        except jwt.InvalidTokenError:
            return {"error": "Token inválido"}
    

Con estas funciones, podemos crear un token de acceso para cada usuario y luego utilizar ese token para obtener información sobre el usuario actual en nuestra aplicación FastAPI.

¡Esperamos que este tutorial te haya sido útil para crear tokens de acceso y obtener información del usuario en FastAPI!

0 0 votes
Article Rating
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@MarcosHernandez_VE
7 months ago

Muy bonito y todo pero no puedes usar un tema oscuro?? siento que me quema la retina ocular!!!