Je construis un site Web avec flask où les utilisateurs ont des comptes et peuvent se connecter. J'utilise flask-principal pour la partie connexion et la gestion des rôles. Est-il possible de créer la session de l'utilisateur expire après, disons, 5 ou 10 minutes? Je n'ai pas pu trouver cela dans flask documentation ou documentation de flask-principal.
J'ai pensé à un moyen de le faire à la main, de définir une variable côté serveur avec une étiquette de temps au moment de la connexion et à la prochaine action de l'utilisateur, le serveur vérifie le décalage horaire sur cet horodatage et supprime la session.
les sessions de flacon expirent lorsque vous fermez le navigateur, sauf si vous avez une session permanente. Vous pouvez éventuellement essayer ce qui suit:
from datetime import timedelta
from flask import session, app
@app.before_request
def make_session_permanent():
session.permanent = True
app.permanent_session_lifetime = timedelta(minutes=5)
Par défaut, dans Flask, permanent_session_lifetime est défini sur 31 jours.
Oui, nous devrions définir
session.permanent = True
app.permanent_session_lifetime = timedelta(minutes=5)
Mais je ne pense pas que cela devrait être fixé à app.before_request
, Cela conduira à les définir aussi longtemps que possible.
Le permanent_session_lifetime
Est un configuration de base , il doit donc être défini lors de la configuration de l'application:
from datetime import timedelta
app = Flask(__name__)
app.config['SECRET_KEY'] = 'xxxxxxxxx'
app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(minutes=5)
Le session
sera créé pour chaque client, séparé des autres clients. Donc, je pense que le meilleur endroit pour définir session.permanent
Est lorsque vous login()
:
@app.route('/login', methods=['GET', 'POST'])
def login():
#After Verify the validity of username and password
session.permanent = True