gpt4 book ai didi

django - 为什么关闭浏览器后SESSION_EXPIRE_AT_BROWSER_CLOSE = True不注销用户?

转载 作者:行者123 更新时间:2023-12-03 11:25:28 27 4
gpt4 key购买 nike

根据Django文档,“如果SESSION_EXPIRE_AT_BROWSER_CLOSE设置为True,则Django将使用浏览器长度的cookie,这些cookie会在用户关闭浏览器后立即过期。如果您希望人们每次登录时都必须登录,请使用此cookie打开浏览器。”

这就是通过将以下行添加到settings.py文件(然后重新启动服务器)来完成的:

# Close the session when user closes the browser
SESSION_EXPIRE_AT_BROWSER_CLOSE = True

然后,我登录到一个页面,该页面检查用户是否已通过身份验证,然后关闭浏览器。当我再次打开浏览器并访问同一页面时,它不需要输入用户名和密码,因为它显然通过了以下测试:
def check_teacher(request):
result = {}
if request.user.is_authenticated():
...

我做错了什么或我想念什么?有什么建议?

我在Ubuntu GNU / Linux 10.10系统上使用Django版本1.3 pre-alpha SVN-13858,并使用Django开发服务器运行上述示例。

最佳答案

关闭选项卡或窗口不算作关闭浏览器。确保退出浏览器程序以结束浏览器 session 。

如果这样做没有帮助,请使用firefox中的FireBug或Safari中的Web Inspector仔细检查初始页面命中响应中的标题。初始页面点击可能是很多事情之一;首次打开浏览器时,注销时或清除cookie之后立即。使用SESSION_EXPIRE_AT_BROWSER_CLOSE = True,您应该在标题中看到以下内容:

Set-Cookie:sessionid=f4c06139bc46a10e1a30d5f0ab7773e2; Path=/

SESSION_EXPIRE_AT_BROWSER_CLOSE = False时,将添加一个 expires=...值:
Set-Cookie:sessionid=a532f3d7dc314afc58e8f676ed72280e; expires=Wed, 03-Nov-2010 17:08:45 GMT; Max-Age=1209600; Path=/

如果由于重定向而很难看到 Set-Cookie header ,则可以尝试使用 django-debug-toolbar将重定向分为多个页面。

关于django - 为什么关闭浏览器后SESSION_EXPIRE_AT_BROWSER_CLOSE = True不注销用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3976498/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com