Flask Login & SQLAlchemy – Connexion utilisateur, système d’authentification
La création d’une application avec le système de connexion et d’authentification de l’utilisateur est une fonction de base à l’ère actuelle du Web 3.0. Apprendre à utiliser la connexion Flask
Basé sur l'utilisateur et orienté client sont très populaires dans le modèle commercial d'aujourd'hui. Outre le Web 2.0, le Web 3.0 met l'accent sur la décentralisation et redonne plus d'autorité et de gestion des données aux utilisateurs actuels. Ainsi, une tendance à la centralisation des utilisateurs se dessine et ce serait tout simplement plus important. Ainsi, en ce qui concerne la création d'une application à l'aide de Flask, un système de connexion et d'authentification des utilisateurs est une fonction de base qu'il doit avoir. Aujourd'hui, nous allons découvrir comment tirer parti du gestionnaire de connexion Flask et en créer un dans votre application.
Table des matières : Flask Login System
- Installation et configuration du gestionnaire de connexion Flask
- Créer et configurer la base de données utilisateur à l'aide de SQLAlchemy et Flask login UserMixin
- Enregistrement de l'utilisateur
- Flask login_user, logout_user et current_user
- Login_required decorator
- Script Python complet de la connexion et de l'authentification du compte utilisateur Flask
Installation et configuration du gestionnaire de connexion Flask
Ce module fournit la gestion des sessions utilisateur dans l'application Flask. Il gère les tâches courantes de connexion, de déconnexion et de mémorisation des sessions de vos utilisateurs sur de longues périodes.
Fondamentalement, le gestionnaire de connexion Flask peut vous permettre de faire les choses ci-dessous :
- Enregistrez l'identifiant de l'utilisateur actif dans la session et laissez-le se connecter et se déconnecter facilement.
- Vous permet de limiter les vues aux utilisateurs connectés (ou déconnectés).
- Gérez la fonctionnalité normalement délicate "se souvenir de moi".
- Aidez à protéger les sessions de vos utilisateurs contre le vol par des voleurs de cookies.
- Intégrez éventuellement avec Flask-Principal ou d'autres extensions d'autorisation.
Tout d'abord, l'installation d'un gestionnaire de connexion de flacon est très simple. Nous pouvons entrer pip3 install flask-login
dans votre terminal informatique. Ensuite, la configuration de la connexion flask avec votre application flask consiste à suivre les trois étapes suivantes :
1. Importez les modules de connexion du flacon
2. Lancez l'instance LoginManager et connectez-vous à votre application
3. Définissez la fonction load_user en renvoyant le user_id
Créer et configurer la base de données utilisateur à l'aide de SQLAlchemy et Flask login UserMixin
No.1, nous devons importer le module SQLAlchemy et le configurer avec l'application flask
Deuxièmement, créez une classe User à laquelle est ajoutée la colonne de données nécessaire et la spécification de chaque colonne de données.
Enfin, nous devons créer une base de données d'initiative SQLAlchemy. Dans le terminal, nous pouvons créer la base de données de l'initiative SQLAlchemy. Veuillez utiliser le nom de l'application que vous avez créé dans l'application flask et le nom de la variable que vous avez utilisé pour vous connecter à l'application flask. J'utilise l'application et la base de données ici.
Enregistrement de l'utilisateur
Les ingrédients sont maintenant prêts à commencer à créer un itinéraire d'inscription pour que de nouveaux utilisateurs rejoignent votre application.
Tout d'abord, un parcours est indispensable pour que les utilisateurs s'inscrivent.
@app.route("/registration", methods=['GET', 'POST'])
Pour plus de détails concernant la route Flask et la collecte de données de soumission à partir de HTML, veuillez consulter cet article
Deuxièmement, en nous référant à la classe d'utilisateurs que nous avons créée précédemment, nous devons faire correspondre les nouvelles données d'entrée d'utilisateur du formulaire sur la route d'inscription avec notre colonne de base de données. Si votre application dispose également d'un programme API, ici aussi doit ajouter la variable token et décoder le mot de passe saisi par le nouvel utilisateur.
new_user = User(email=email, username=username, password=generate_password_hash(password, method='sha256'), token=token.decode())
Ensuite, nous pouvons ajouter le new_user et l'utiliser commit()
pour le confirmer, et nous en souvenir en utilisant la fonction login_user que nous avons créée précédemment.
Pour plus de détails sur le déploiement de l'API Flask JWT, veuillez consulter cet article
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 et current_user
Après la création d'un nouvel utilisateur, Flask fournit des modules pour aider les développeurs à créer des pages de connexion, des pages de déconnexion et à détecter l'utilisateur connecté sur les sites.
Tout d'abord, nous devons importer les modules depuis le fichier flask_login. Je parlerai de login_required dans la section suivante.
Login_user
Pour vérifier les informations de connexion de l'utilisateur saisies sur la page de connexion, nous pouvons vérifier si le mot de passe de l'utilisateur dans les données SQLAlchemy peut correspondre au mot de passe saisi par le visiteur.
Utilisation de query.filter_by
dans la classe User pour faire correspondre l'adresse e-mail en premier.
Ensuite, si le mot de passe de l'utilisateur de messagerie récupéré correspond à la valeur d'entrée du formulaire, il est connecté. Et login_user peut se souvenir de cet utilisateur dans n'importe quelle session ultérieurement avant log_out.
Logout_user
Création d'un nouvel itinéraire permettant aux utilisateurs de se déconnecter de leurs comptes
Utilisateur actuel
C'est un module super utile car il indique à l'application qui visite la page. Si vous souhaitez offrir un contenu exclusif aux membres ou différencier le contenu entre les utilisateurs inconnus et les utilisateurs inscrits. Ce module vous facilite le déploiement et la construction des fonctions.
return render_template("shopify.html", user=current_user)
Pour détecter les utilisateurs existants, nous devons ajouter le current_user dans le render_template de chaque route ou des routes dont vous souhaitez afficher le contenu personnalisé dans l'application Flask.
Login_required decorator
Pour toutes les routes qui ne sont ouvertes qu'aux membres, vous devez ajouter le décorateur login_required sous la route. Prenez la route de déconnexion, par exemple, si un utilisateur ne s'est pas encore connecté, il ne peut pas cliquer sur la page de déconnexion, et vous pouvez ajouter un message flask pour l'avertir de se connecter en premier.
@app.route("/logout")
@login_required
def logout():
logout_user()
return redirect(url_for('home'))
Script Python complet de la connexion et de l'authentification Flask
Si vous êtes intéressé par les scripts python complets du Chapitre 57 – Construire le système de connexion et d'authentification du compte utilisateur à l'aide de Flask, SQLAlchemy, veuillez vous inscrire à notre newsletter en ajoutant le message "Chapitre 57" . Nous vous enverrions le script immédiatement dans votre boîte aux lettres.
J'espère que vous apprécierez la lecture du chapitre 57 – Construire le système de connexion et d'authentification du compte utilisateur à l'aide de Flask, SQLAlchemy. Si vous l'avez fait, veuillez nous soutenir en faisant l'une des choses énumérées ci-dessous, car cela aide toujours notre chaîne.
- Soutenez et faites un don à notre chaîne via PayPal ( paypal.me/Easy2digital )
- Abonnez-vous à ma chaîne et activez la cloche de notification Chaîne Youtube Easy2Digital .
- Suivez et aimez ma page Page Facebook Easy2Digital
- Partagez l'article sur votre réseau social avec le hashtag #easy2digital
- Achetez des produits avec le code de réduction Easy2Digital 10% OFF ( Easy2DigitalNewBuyers2021)
- Vous vous inscrivez à notre newsletter hebdomadaire pour recevoir les derniers articles, vidéos et codes de réduction Easy2Digital
- Abonnez-vous à notre abonnement mensuel via Patreon pour profiter d'avantages exclusifs ( www.patreon.com/louisludigital )