Flask Login & SQLAlchemy – Inicio de sesión de usuario, sistema de autenticación

Construir una aplicación con el sistema de inicio de sesión y autenticación de usuarios es una función básica en la era actual de la web 3.0. Aprenda usando el inicio de sesión de Flask

Los modelos basados ​​en el usuario y orientados al cliente son muy populares en el modelo comercial actual. Además de la web 2.0, la web 3.0 enfatiza la descentralización y devuelve más autoridad y gestión de datos a los usuarios actuales. Entonces, está surgiendo una tendencia de enfoque de centralización del usuario y simplemente sería más importante. Entonces, con respecto a la creación de una aplicación usando Flask, un sistema de autenticación e inicio de sesión de usuario es una función básica que debe tener. Hoy trata sobre cómo aprovechar el administrador de inicio de sesión de Flask y crear uno en su aplicación.

Tabla de contenido: Sistema de inicio de sesión de Flask

Instalación y configuración del administrador de inicio de sesión de Flask

Este módulo proporciona gestión de sesiones de usuario en la aplicación Flask. Maneja las tareas comunes de iniciar y cerrar sesión y recordar las sesiones de sus usuarios durante largos períodos de tiempo.

Básicamente, el administrador de inicio de sesión de Flask puede permitirte hacer lo siguiente:

  1. Almacene la ID del usuario activo en la sesión y le permite iniciar y cerrar sesión fácilmente.
  2. Le permite restringir las vistas a los usuarios conectados (o desconectados).
  3. Maneje la funcionalidad normalmente complicada de "recuérdame".
  4. Ayude a proteger las sesiones de sus usuarios para que no sean robadas por ladrones de cookies.
  5. Posiblemente se integre con Flask-Principal u otras extensiones de autorización.

Lo primero es lo primero, instalar un administrador de inicio de sesión de matraz es muy fácil. Podemos ingresar pip3 install flask-login en su terminal de computadora. Luego, configurar el inicio de sesión del matraz con su aplicación del matraz es siguiendo los tres pasos:

1. Importe los módulos de inicio de sesión del matraz

2. Inicie la instancia de LoginManager y conéctese con su aplicación

3. Defina la función load_user devolviendo el user_id

Cree y configure la base de datos de usuarios usando SQLAlchemy y Flask login UserMixin

No.1, necesitamos importar el módulo SQLAlchemy y configurarlo con la aplicación del matraz

En segundo lugar, cree una clase Usuario a la que se le agregue la columna de datos necesaria y la especificación de cada columna de datos.

Por último, pero no menos importante, necesitamos crear una base de datos SQLAlchemy de iniciativa. En la terminal, podemos crear la base de datos SQLAlchemy de la iniciativa. Utilice el nombre de la aplicación que creó en la aplicación del matraz y el nombre de la variable que utilizó para conectarse con la aplicación del matraz. Yo uso la aplicación y db aquí.

registro de usuario

Ahora los ingredientes están listos para comenzar a construir una ruta de registro para que los nuevos usuarios se unan a su aplicación.

Lo primero es lo primero, una ruta es indispensable para que los usuarios se registren.

@app.route("/registration", methods=['GET', 'POST'])

Para obtener más detalles sobre la ruta Flask y la recopilación de datos de envío de HTML, consulte este artículo

https://www.easy2digital.com/automation/data/python-tutorial-26-create-a-shopify-bot-web-application-using-flask-and-heroku/

En segundo lugar, al referirnos a la clase de usuario que creamos anteriormente, debemos hacer coincidir los nuevos datos de entrada del usuario del formulario en la ruta de registro con nuestra columna de base de datos. Si su aplicación también tiene un programa API, aquí también necesita agregar la variable token y decodificarla con la contraseña ingresada por el nuevo usuario.

new_user = User(email=email, username=username, password=generate_password_hash(password, method='sha256'), token=token.decode())

Luego, podemos agregar new_user y utilizar commit() para confirmarlo y recordarlo usando la función login_user que creamos anteriormente.

Para obtener más detalles sobre la implementación de la API de Flask JWT, consulte este artículo

https://www.easy2digital.com/automation/data/python-tutorial-54-utilize-flask-jwt-to-tokenizer-the-api-user-identity-and-authenticate-users/

Flask login_user, logout_user y current_user

Después de la creación de un nuevo usuario, Flask proporciona módulos para facilitar a los desarrolladores la creación de páginas de inicio de sesión, las páginas de inicio de sesión y la detección del usuario registrado en los sitios.

Lo primero es lo primero, necesitamos importar los módulos desde el archivo Flash_login. Hablaré sobre login_required en la siguiente sección.

Login_user

Para verificar la información de inicio de sesión del usuario ingresada en la página de inicio de sesión, podemos verificar si la contraseña del usuario en los datos de SQLAlchemy puede coincidir con la contraseña ingresada por el visitante.

Usar query.filter_by en la clase Usuario para hacer coincidir primero la dirección de correo electrónico.

Luego, si la contraseña del usuario de correo electrónico obtenido coincide con el valor de entrada del formulario, se inicia sesión. Y login_user puede recordar a este usuario en cualquier sesión posterior antes de log_out.

Cerrar sesión_usuario

Creación de una nueva ruta para que los usuarios cierren sesión en sus cuentas

Usuario actual

Este es un módulo súper útil ya que le dice a la aplicación quién está visitando la página. Si te gusta ofrecer contenido exclusivo para miembros o diferenciar contenido entre usuarios desconocidos y usuarios registrados. Este módulo le facilita implementar y construir las funciones.

return render_template("shopify.html", user=current_user)

Para detectar los usuarios existentes, debemos agregar current_user en el render_template de cada ruta o las rutas en las que desea mostrar contenido personalizado en la aplicación Flask.

Decorador Login_required

Para cualquier ruta que solo esté abierta a los miembros, debe agregar el decorador login_required debajo de la ruta. Tome la ruta de cierre de sesión, por ejemplo, si un usuario aún no ha iniciado sesión, no puede hacer clic en la página de cierre de sesión y puede agregar un mensaje de matraz para notificarle que inicie sesión primero.

@app.route("/logout")

@login_required

def logout():

logout_user()

return redirect(url_for('home'))

Script Python completo de inicio de sesión y autenticación de Flask

Si está interesado en las secuencias de comandos de Python completas del Capítulo 57: Cree el sistema de autenticación e inicio de sesión de la cuenta de usuario mediante Flask, SQLAlchemy, suscríbase a nuestro boletín agregando el mensaje "Capítulo 57" . Le enviaremos el guión inmediatamente a su buzón.

Contáctenos

Espero que disfrute leyendo el Capítulo 57: Cree el sistema de inicio de sesión y autenticación de la cuenta de usuario usando Flask, SQLAlchemy. Si lo hiciste, apóyanos haciendo una de las cosas que se enumeran a continuación, porque siempre ayuda a nuestro canal.

  • Apoya y dona a nuestro canal a través de PayPal ( paypal.me/Easy2digital )
  • Suscríbete a mi canal y activa la campanita de notificaciones Easy2Digital Youtube channel .
  • Sigue y dale me gusta a mi página Easy2Digital Facebook page
  • Comparte el artículo en tu red social con el hashtag #easy2digital
  • Compre productos con Easy2Digital 10% de descuento Código de descuento ( Easy2DigitalNewBuyers2021)
  • Te suscribes a nuestro boletín semanal para recibir los últimos artículos, videos y códigos de descuento de Easy2Digital
  • Suscríbase a nuestra membresía mensual a través de Patreon para disfrutar de beneficios exclusivos ( www.patreon.com/louisludigital )