Flask-Login的`remember_me`是否会覆盖Flask的`permanent`?

问题描述 投票:2回答:1

Remember-me是一个parameter

flask_login.login_user(user, remember=False, duration=None, force=False, fresh=True)

login_userFlask-Login。它可以“在会话到期后记住用户”。

而只有Flask(而不是Flask-Login)

'PERMANENT_SESSION_LIFETIME': datetime.timedelta(31)

default_config默认设置为31天(可以适当修改)。 session.permanent也可以通过set进行永久性会议,perhaps通过:

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-Login的remember_me是否会覆盖Flask的permanent?他们如何互动?

flask flask-login
1个回答
3
投票

remember_me未存储在Flask会话中。它存储在一个单独的cookie中,其名称和到期时间为handled in the Flask-Login configuration

REMEMBER_COOKIE_NAME 用于存储“记住我”信息的cookie的名称。默认值:remember_token

REMEMBER_COOKIE_DURATION Cookie到期前的时间量,为datetime.timedelta对象或整数秒。默认值:365天(1天非飞跃公历年)

REMEMBER_COOKIE_REFRESH_EACH_REQUEST 如果设置为True,则会在每次请求时刷新cookie,这会破坏生命周期。就像Flask的SESSION_REFRESH_EACH_REQUEST一样。默认值:False

再加上一些REMEMBER_COOKIE_*设置来控制cookie的可见性(域,路径,加密连接,以及浏览器中运行的代码是否可以访问该值)。

Flask会话配置与此无关;这是一个单独的cookie,具有单独的设置。记住我的功能根本不与Flask的permanent_session_lifetime / PERMANENT_SESSION_LIFETIME设置,Flask SESSION_COOKIE_* configurationapp.session.permanent相互作用。

默认情况下,Flask使用session作为会话cookie名称,Flask-Login使用remember_token作为记忆我的cookie。

© www.soinside.com 2019 - 2024. All rights reserved.