django-allauth ACCOUNT_SESSION_REMEMBER=无不起作用

luf*_*fan 6 django django-allauth

我知道django-allauth设置ACCOUNT_SESSION_REMEBER应该如下:

None:  optionally remember, depending on user input
True:  always remember
False: never remember
Run Code Online (Sandbox Code Playgroud)

但就我而言,当ACCOUNT_SESSION_REMEMBER使用None时,无论用户是否选择检查remember me,它都不起作用。

ACCOUNT_SESSION_REMEMBER当与True或 一起使用时False,它会按照记录的方式工作。

小智 0

使用 django-allauth==0.51.0,我看到了ACCOUNT_SESSION_REMEMBER = None预期的效果。

\n

这是我所做的:

\n
    \n
  1. 我登录时勾选了“记住我”。
  2. \n
  3. 我退出了 Chrome 浏览器。
  4. \n
  5. 我重新打开 Chrome 浏览器,然后进入登录页面。
  6. \n
  7. 我注销并重新登录,但未选中“记住我”。
  8. \n
  9. 我再次退出 Chrome 浏览器。
  10. \n
  11. 我重新打开 Chrome 浏览器,但我已注销。
  12. \n
\n

我想必须关闭浏览器才能强制注销。在 中allauth,它设置set_expiry(0)为 时remember == None

\n
        if remember:\n            request.session.set_expiry(app_settings.SESSION_COOKIE_AGE)\n        else:\n            request.session.set_expiry(0)\n
Run Code Online (Sandbox Code Playgroud)\n

根据 Django 官方set_expiry 文档

\n
    \n
  • 如果value为 0,则当 user\xe2\x80\x99s Web 浏览器关闭时,user\xe2\x80\x99s 会话 cookie 将过期。
  • \n
\n