Outils pour utilisateurs

Outils du site


python:flask:login

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
python:flask:login [2021/10/20 05:07]
marclebrun [Lecture de l'utilisateur en cours]
python:flask:login [2021/10/20 06:11] (Version actuelle)
Ligne 1: Ligne 1:
 ====== Login ====== ====== Login ======
  
-Système de login simple sans utiliser ​le paquet ​**Flask-Login** (pour l'​instant :-) )+Système de login simple sans utiliser ​de plugins 
 +tels que **Flask-Login** ​ou **Flask-User** 
 +(pour l'​instant :-) )
  
 ===== Formulaire ===== ===== Formulaire =====
Ligne 34: Ligne 36:
  
 <code python> <code python>
-from flask import request, session, redirect, flash +from flask import request, session, redirect, flashrender_template,​ url_for 
-from flask import ​render_template,​ url_for +from werkzeug.security import check_password_hash
-from werkzeug.security import ​generate_password_hash, ​check_password_hash+
 </​code>​ </​code>​
  
Ligne 107: Ligne 108:
 def before_request():​ def before_request():​
  
-    # Rechercher l'​utilisateur selon son login +    # Rechercher l'​utilisateur selon le login sauvé dans la session 
-    ​user = recherche_selon_login(session["​login"​])+ 
 +    ​# La valeur renvoyée peut être un objet ou un dictionnaire contenant 
 +    # les propriétés de l'​utilisateur,​ ses droits, etc...
     ​     ​
-    # La valeur renvoyée ​peut être un objet contenant les propriétés +    # Si pas trouvé, la valeur renvoyée ​est None
-    # de l'​utilisateur,​ ses droits, etc... +
-     +
-    if user: +
-        g.current_user = user+
         ​         ​
-    ​else: +    g.current_user = recherche_selon_login(session["​login"​])
-        ​g.current_user = None+
 </​code>​ </​code>​
  
 +===== Templates =====
 +
 +Afficher soit le lien **login** si on n'est pas connecté, soit le lien **logout**
 +si une session est en cours.
 +
 +<code twig>
 +{% if session.login %}
 +    <a href="​{{ url_for('​logout'​) }}">​Déconnexion</​a>​
 +{% else %}
 +    <a href="​{{ url_for('​login'​) ​ }}">​Connexion</​a>​
 +{% endif %}
 +</​code>​
 +
 +Le reste est accessible dans la variable **g**.
 +Par exemple :
 +
 +<code twig>
 +{% if g.current_user %}
 +    <​p>​Vous êtes connecté(e) en tant que {{ g.current_user.full_name }}.</​p>​
 +{% endif %}
 +</​code>​
 +
 +===== Hashage d'un mot de passe =====
 +
 +<code python>
 +from werkzeug.security import generate_password_hash
 +
 +password_hash = generate_password_hash('​mon_mot_de_passe'​)
 +</​code>​
  
python/flask/login.1634706468.txt.gz · Dernière modification: 2021/10/20 05:07 par marclebrun