首页 文章

Django - 会话数据被修改时会话cookie到期时间是否更新?

提问于
浏览
3

我有一个Django应用程序,我希望用户会话在用户登录后的X天后过期 .

阅读Django文档我发现相关的配置选项是SESSION_COOKIE_AGE . 但是https://stackoverflow.com/a/24147980/356729表示"the expires part of a session cookie is updated each time the session cookie is sent",默认情况下每次修改会话时都是如此 .

这是否意味着,每次更新会话数据时,会话cookie到期日期都会更新为 now + SESSION_COOKIE_AGE

1 回答

  • 2

    我自己的问题的答案是:是的 . 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)
    

相关问题