Очистка файлов сессий на стороне сервера - Flask-Session с использованием файловой системы - PullRequest
0 голосов
/ 19 декабря 2018

Я решил использовать серверное управление сеансами с Flask с помощью Flask-Session.

Я храню данные, используя filesystem, и, как и ожидалось, эти файлы хранятся в папке /flask_session в моей директории конфигурации.

Вот как я это настроил в своем __init__.py

# __init__.py

from flask_session import Session

[...]

app.config['SESSION_TYPE'] = 'filesystem'
app.config['SECRET_KEY'] = config.SECRET_KEY
sess = Session()
sess.init_app(app)

Как и ожидалось, файлы сеансов, созданные и сохраненные в /flask_session

▾ flask_session/
        1695e5cbf9b4edbbbb82a8ef1fad89ae
        192761f7ce8e3cbf3ca11665133b7794
        2029240f6d1128be89ddc32729463129
        ...

Вопрос: Эти файлы автоматически удаляются flask_session послеконкретное количество времени (т.е. как сеанс хранится на стороне клиента)?Если да, возможно ли уменьшить / увеличить это время?

1 Ответ

0 голосов
/ 19 декабря 2018

Как прокомментировал Данила Гончар, использование PERMANENT_SESSION_LIFETIME позволяет контролировать время истечения сеанса.

Flask-Session использует ту же встроенную конфигурацию, что и сам Flask (относится к сеансу).От Flask-Session doc:

Следующие значения конфигурации являются встроенными значениями конфигурации в самой Flask, которые связаны с сеансом.Все они понятны Flask-Session, например, вы должны использовать PERMANENT_SESSION_LIFETIME для управления временем жизни вашего сеанса.

Пример:

# __init__.py

from flask_session import Session
from datetime import timedelta

app.config['SESSION_PERMANENT'] = True
app.config['SESSION_TYPE'] = 'filesystem'
app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(hours=5)

# The maximum number of items the session stores 
# before it starts deleting some, default 500
app.config['SESSION_FILE_THRESHOLD'] = 100  

app.config['SECRET_KEY'] = config.SECRET_KEY
sess = Session()
sess.init_app(app)
...