我有一个 Django 应用程序,我希望用户 session 在用户登录后 X 天后过期。
阅读 Django 文档我发现相关的配置选项是 SESSION_COOKIE_AGE .然而https://stackoverflow.com/a/24147980/356729声明“每次发送 session cookie 时都会更新 session cookie 的过期部分”,这是每次修改 session 时的默认设置。
这是否意味着每次更新 session 数据时, session cookie 过期日期都会更新为 now + SESSION_COOKIE_AGE
?
最佳答案
我自己的问题的答案是:是的。 Here是相关代码:
if modified or settings.SESSION_SAVE_EVERY_REQUEST:
if request.session.get_expire_at_browser_close():
max_age = None
expires = None
else:
max_age = request.session.get_expiry_age()
expires_time = time.time() + max_age
expires = cookie_date(expires_time)
# Save the session data and refresh the client cookie.
# Skip session save for 500 responses, refs #3881.
if response.status_code != 500:
request.session.save()
response.set_cookie(settings.SESSION_COOKIE_NAME,
request.session.session_key, max_age=max_age,
expires=expires, domain=settings.SESSION_COOKIE_DOMAIN,
path=settings.SESSION_COOKIE_PATH,
secure=settings.SESSION_COOKIE_SECURE or None,
httponly=settings.SESSION_COOKIE_HTTPONLY or None)
关于Django - 修改 session 数据时 session cookie过期时间是否更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30098186/