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登录的remember_me
是否会覆盖Flask的permanent
?他们如何互动?
答案 0 :(得分: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_*
configuration或app.session.permanent
交互。
默认情况下,Flask使用session
作为会话cookie名称,而Flask-Login使用remember_token
作为记住我 cookie。