Есть ли простой способ сделать тайм-аут сессий в колбе?
Я создаю сайт с колбой, где пользователи имеют учетные записи и могут войти в систему. Я использую flask-principal для входа в систему и управления ролями. Есть ли способ заставить сеанс пользователя истекать, скажем, через 5 минут или 10 минут? Я не смог найти это в документации по колбе или в документации по колбе-принципалу.
Я придумал способ сделать это вручную, установить переменную на стороне сервера с тегом времени в момент входа в систему и при следующем действии пользователя принимает, сервер проверяет дельту времени на этой метке времени и удаляет сеанс.
2 ответа:
сеансы колбы истекают после закрытия браузера, если у вас нет постоянного сеанса. Вы можете попробовать следующее:
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)
по умолчанию в Flask для параметра permanent_session_lifetime задано значение 31 день.
Да, мы должны ставить
session.permanent = True app.permanent_session_lifetime = timedelta(minutes=5)
но я не думаю, что он должен быть установлен в приложение.before_request, это приведет к установке их тоже может раз.
The permanent_session_lifetime это Основные Настройки, так что он должен быть установлен у вас настроить приложение:
from datetime import timedelta app = Flask(__name__) app.config['SECRET_KEY'] = 'xxxxxxxxx' app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(minutes=5)
The сессии будет создан для каждого клиента, отдельно от других клиентов. Поэтому, я думаю, что лучшее место для установки сессии.постоянный это когда вы " войти ()":
@app.route('/login', methods=['GET', 'POST']) def login(): #After Verify the validity of username and password session.permanent = True