Curso de FastAPI: Prueba inicial de autenticación con JWT y autorización tipo Bearer

Posted by

FastAPI Curso: 148 Primera Prueba de Efectuar una Autenticación con JWT y Autorización Tipo Bearer

En este artículo, exploraremos cómo realizar la primera prueba de autenticación con JWT y autorización tipo Bearer en FastAPI.

¿Qué es JWT?

JWT (JSON Web Token) es un estándar abierto que define una forma compacta y autónoma para transmitir información entre dos partes de manera segura como un objeto JSON.

¿Qué es la Autorización Tipo Bearer?

La autorización tipo Bearer es un tipo de autorización HTTP en el que el token de autenticación se envía en la cabecera Authorization de todas las solicitudes HTTP. Este token se utiliza para autenticar al usuario y permitir el acceso a recursos protegidos.

Prueba de Efectuar una Autenticación con JWT y Autorización Tipo Bearer

Para comenzar, primero necesitamos generar un token JWT que nos permitirá autenticarnos. Podemos hacer esto utilizando bibliotecas como PyJWT en Python.

“`python
import jwt
token = jwt.encode({‘user_id’: 123}, ‘secret’, algorithm=’HS256′)
“`

Una vez que tenemos nuestro token JWT, podemos usarlo para autenticar nuestras solicitudes HTTP en FastAPI. Para ello, necesitamos configurar nuestra aplicación para verificar la validez del token en la cabecera Authorization de cada solicitud.

“`python
from fastapi import FastAPI, HTTPException, Depends
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials

app = FastAPI()
security = HTTPBearer()

def get_current_user(response: HTTPAuthorizationCredentials = Depends(security)):
try:
payload = jwt.decode(response.credentials, ‘secret’, algorithms=[‘HS256’])
user_id = payload.get(‘user_id’)
if user_id is None:
raise HTTPException(status_code=401, detail=”Invalid token”)
return user_id
except JWTError:
raise HTTPException(status_code=401, detail=”Invalid token”)
“`

En este ejemplo, estamos utilizando el decorador Depends de FastAPI para indicar que la función get_current_user depende de la autenticación proporcionada por el token JWT en la cabecera Authorization. Si el token es válido, la función devolverá el ID de usuario.

Finalmente, podemos proteger nuestras rutas en FastAPI utilizando el decorador Depends con nuestra función get_current_user.

“`python
@app.get(“/protected”)
async def protected_route(user_id: int = Depends(get_current_user)):
return {“message”: f”Hello user {user_id}, you have access to this protected route.”}
“`

Con esto, hemos completado nuestra primera prueba de autenticación con JWT y autorización tipo Bearer en FastAPI. Ahora podemos asegurarnos de que nuestras rutas protegidas solo sean accesibles para usuarios autenticados con un token JWT válido.

¡Esperamos que este artículo te haya sido útil para comprender cómo implementar la autenticación con JWT y autorización tipo Bearer en FastAPI! ¡Gracias por leer!

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

Muchas gracias john por todo tu contenido estoy siendo tu curso completo de python soy nue o en este mundo y es muy entretenido y divertido saludos desde argentina