Django4.0 使用会话-Browser-length sessions和persistent sessions
你可以通过设置 SESSION_EXPIRE_AT_BROWSER_CLOSE
来控制会话框架是使用 browser-length sessions还是persistent sessions。
默认情况下, SESSION_EXPIRE_AT_BROWSER_CLOSE
为 False
,这意味着会话 cookies 将保存在用户浏览器中持续 SESSION_COOKIE_AGE
的时间。如果你不想用户每次打开浏览器时必须登录,就用这个。
如果 SESSION_EXPIRE_AT_BROWSER_CLOSE
为 True
,Django 将使用 browser-length cookies
—— cookies 在用户关闭浏览器时过期。如果你想让用户每次打开浏览器时必须登录,就用这个。
这个设置是全局默认的,并且可以通过显式调用 request.session
的 set_expiry()
在每个会话级别上覆盖,和之前的 using sessions in views
里描述的一样。
注意:有一些浏览器(比如谷歌浏览器)提供允许用户在关闭或重新打开浏览器后继续浏览会话的设置。有时候,这会妨碍 SESSION_EXPIRE_AT_BROWSER_CLOSE
设置,并且阻止会话在浏览器关闭时过期。如果开启了 SESSION_EXPIRE_AT_BROWSER_CLOSE
设置,在测试 Django 程序时要注意这一点。