根据Django文档,"如果SESSION_EXPIRE_AT_BROWSER_CLOSE设置为True,Django将使用浏览器长度的cookie - 一旦用户关闭浏览器就会过期的cookie.如果您希望人们每次都必须登录,请使用此打开浏览器."
这就是我通过将以下行添加到我的settings.py文件(并重新启动服务器)所做的事情:
# Close the session when user closes the browser
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
Run Code Online (Sandbox Code Playgroud)
然后我登录到一个页面,检查用户是否经过身份验证,然后我关闭了浏览器.当我再次打开浏览器并访问同一页面时,它不会要求输入用户名和密码,因为它显然通过了以下测试:
def check_teacher(request):
result = {}
if request.user.is_authenticated():
...
Run Code Online (Sandbox Code Playgroud)
我做错了什么或我错过了什么?有什么建议?
我在我的Ubuntu GNU/Linux 10.10系统上使用Django 1.3版pre-alpha SVN-13858,并使用Django开发服务器运行上面的示例.
当用户登录时,一些细节会保存到会话中,让我们说使用key ='user_settings'
当系统内发生某些更新时,我需要遍历所有用户并从每个用户会话中删除"user_settings"键.这样我就会触发从数据库中加载新鲜的细节.
如何遍历所有会话并从每个会话中删除密钥?