Кол-во постоянных сессий: где их определить?

По умолчанию Flask использует летучие сессии, что означает, что cookie сеанса истекает, когда браузер закрывается. Чтобы использовать постоянные сеансы, в которых будет использоваться файл cookie с определенной датой истечения срока действия, следует установить session.permanent = True, как это указано в этом вопросе, и истечение срока действия дата будет установлена ​​на основе config['PERMANENT_SESSION_LIFETIME'].

Я удивлен, что время жизни сеанса определено в файле конфигурации, но невозможно запросить использование постоянных сеансов через конфигурацию, например config['USE_PERMANENT_SESSION'] = True. Но так будет.

Мой вопрос: если вы хотите постоянных сессий, то какое место лучше их определить? Является ли это функцией @app.before_request, предложенной в упомянутом вопросе? Но это будет означать, что это нужно снова при каждом запросе? Кажется, что когда-то установлено, session.permanent остается верным до конца сеанса.

Постоянные сеансы обычно используются после входа в систему, поэтому, возможно, лучше всего их запросить при обработке login_user()? Как лучше всего использовать летучие сеансовые куки для всех анонимных страниц и переключиться на постоянные сеансы, выполнив session.permanent = True при регистрации?

И может потребоваться установить другое время жизни в зависимости от того, является ли это обычным cookie session или cookie remember_me. Какой был бы лучший способ достичь этого?

Ответ 1

Я удивлен, что нет, ответил на этот вопрос. Похоже, что должна быть какая-то переменная конфигурации SESSION_PERMANENT = True. Но, к сожалению, нет. Как вы упомянули, это лучший способ сделать это.

@app.before_request
def make_session_permanent():
    session.permanent = True