flask_login.login_user(user, remember=False, duration=None, force=False, fresh=True)
到login_user
的Flask-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
?他们如何互动?
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_*
configuration或app.session.permanent
相互作用。
默认情况下,Flask使用session
作为会话cookie名称,Flask-Login使用remember_token
作为记忆我的cookie。