我知道django-allauth
设置ACCOUNT_SESSION_REMEBER
应该按如下方式工作:
None: optionally remember, depending on user input
True: always remember
False: never remember
但是就我而言,当ACCOUNT_SESSION_REMEMBER
时None
,那么无论用户是否选择检查remember me
,它都不起作用。
当将ACCOUNT_SESSION_REMEMBER
与True
或False
一起使用时,它的工作原理如文档所示。
使用 django-allauth==0.51.0,我看到ACCOUNT_SESSION_REMEMBER = None
按预期工作。
这是我所做的:
- 我在选中"记住我"的情况下登录。
- 我退出了Chrome浏览器。
- 我重新打开 Chrome 浏览器,并且处于登录页面。 我
- 注销并重新登录,未选中"记住我"。
- 我再次退出了Chrome浏览器。
- 我重新打开 Chrome 浏览器,但已注销。
我想关闭浏览器是强制注销所必需的。在allauth
中,它设置set_expiry(0)
时remember == None
。
if remember:
request.session.set_expiry(app_settings.SESSION_COOKIE_AGE)
else:
request.session.set_expiry(0)
根据Django官方文件在这里set_expiry
:
- 如果
value
为 0,则用户的会话 Cookie 将在用户的 Web 浏览器关闭时过期。