Autenticación de usuarios: Login
Clase 29 de 36 • Curso de Flask
Contenido del curso
Uso de templates y archivos estáticos
Extensiones de Flask
Proyecto
- 21

Planteamiento del proyecto: To Do List
01:54 min - 22

App Factory
06:49 min - 23

Uso de Blueprints
13:49 min - 24

Blueprints II
07:30 min - 25

Base de datos y App Engine con Flask
03:11 min - 26
Configuración de Google Cloud SDK
00:17 min - 27

Configuración de proyecto en Google Cloud Platform
07:11 min - 28

Implementación de Firestore
11:53 min - 29

Autenticación de usuarios: Login
Viendo ahora - 30

Autenticación de usuarios: Logout
10:03 min - 31

Signup
10:53 min - 32

Agregar tareas
08:27 min - 33

Eliminar tareas
13:24 min - 34

Editar tareas
09:01 min - 35

Deploy a producción con App Engine
07:43 min - 36

Conclusiones
01:27 min
¿Cómo integrar FlashLogin para autenticación de usuarios?
Antes de entrar de lleno, dejarme decirte que integrar un sistema de autenticación permite a nuestras aplicaciones garantizar que solo usuarios autorizados puedan acceder a ciertas funcionalidades, mejorando la seguridad. En esta sección, vamos a implementar FlashLogin para autenticar usuarios en una aplicación web. Empezaremos instalando FlashLogin y configurando un LoginManager para manejar las sesiones de usuarios.
¿Cómo instalo y configuro FlashLogin?
Para empezar, es fundamental instalar FlashLogin en nuestro proyecto. Esto se hace mediante el archivo requirements.txt. Una vez hecho esto, es necesario configurar un LoginManager. Este se encargará de inicializar la aplicación y permitir cargar el usuario.
Iniciemos importando la clase LoginManager y configurando nuestra aplicación:
from flask_login import LoginManager
login_manager = LoginManager()
login_manager.login_view = 'auth.login' # Ruta donde se redirigirá al usuario no autenticado
login_manager.init_app(app)
¿Cómo protejo rutas con LoginRequired?
El sistema de autenticación nos permite proteger rutas específicas en nuestra aplicación, lo que significa que solo los usuarios autenticados pueden acceder a ellas. Para ello, utilizamos el decorador @login_required.
Asegúrate de importar el decorador correcto y sigue estos pasos:
from flask_login import login_required
@app.route('/hello')
@login_required
def hello():
return 'Bienvenido, usuario autenticado!'
¿Qué es un modelo de usuario y cómo se utiliza?
Para que FlashLogin funcione correctamente, debemos definir un modelo de usuario. Este debería heredar de UserMixin, una clase que proporciona las propiedades necesarias para la autenticación:
from flask_login import UserMixin
class UserModel(UserMixin):
def __init__(self, user_data):
self.id = user_data['username']
self.password = user_data['password']
¿Cómo cargo un usuario desde la base de datos?
La función load_user se utiliza para cargar usuarios desde la base de datos. Utilizamos un método de consulta para obtener la información del usuario y regresarla en un formato que FlashLogin pueda entender:
@login_manager.user_loader
def load_user(user_id):
user_data = get_user(user_id) # Función que consulta la base de datos
if user_data:
return UserModel(user_data)
return None
¿Cómo consulto un usuario específico en Firestore?
Para trabajar con una base de datos como Firestore, debemos definir un método que recupere un usuario específico pasando su ID o username:
def get_user(user_id):
user_ref = db.collection('users').document(user_id)
user_doc = user_ref.get()
if user_doc.exists:
return user_doc.to_dict()
return None
Abraza estos conocimientos para implementar un sistema robusto de autenticación en tus aplicaciones. No subestimes la importancia de proteger tus rutas y manejar sesiones de forma segura. Cada paso te acerca a ser un experto en gestión de usuarios dentro de tu aplicación. ¡No te desanimes y sigue explorando!