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:05]
marclebrun [Déconnexion]
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 106: Ligne 107:
 @app.before_request @app.before_request
 def before_request():​ def before_request():​
-    ​g.current_user =+ 
 +    # Rechercher l'​utilisateur selon le login sauvé dans la session 
 + 
 +    # La valeur renvoyée peut être un objet ou un dictionnaire contenant 
 +    # les propriétés de l'​utilisateur,​ ses droits, etc... 
 +     
 +    # Si pas trouvé, la valeur renvoyée est None 
 +         
 +    ​g.current_user = recherche_selon_login(session["​login"​]) 
 +</​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>​ </​code>​
  
python/flask/login.1634706346.txt.gz · Dernière modification: 2021/10/20 05:05 par marclebrun