django中的注销功能

时间:2010-02-26 06:49:54

标签: python django

所有

在django项目中,如果打开2个模板窗口,如果在1个窗口中触发注销,则不会清除其他窗口cookie。如何删除cookie以便触发注销。

def logout(request):
    //request = redirect('webbie.home.views.loginpage')
    //request.delete_cookie('user_location')
    return auth_logout(request)

谢谢..

2 个答案:

答案 0 :(得分:1)

在cookie中,您只应存储会话密钥。然后,服务器需要跟踪所有会话密钥并将过期日期/时间和用户帐户与它们相关联。对于每个登录的用户,应该为他们提供新的会话密钥,但您可以允许多个登录/用户帐户。因此,当您检查cookie是否有效时,您需要咨询您的服务器数据库,看看您是否拥有此会话密钥并且它是否有效。如果您现在想要“杀死”用户帐户的所有活动会话,当其中一个用户注销时,您只需要从服务器会话密钥列表中删除所有会话密钥。
您应该尝试不将敏感数据存储在cookie中,会话密钥就足够了,然后让服务器将数据关联到此密钥。现在您可以控制已登录的用户 有关文档的更多Django会话信息:http://docs.djangoproject.com/en/dev/topics/http/sessions/

答案 1 :(得分:0)

你到底是什么意思?你的意思是如果你必须使用同一个网站打开Windows,并且在一个窗口中注销,你没有在另一个窗口中注销?我怀疑。

当然,您没有在其他窗口中重定向到某个页面,因为您在此特定窗口中没有做任何事情。但是,如果单击仅对登录用户可用的链接,则应将您重定向到登录页面。

不,你不能在客户端检测用户是否从其他站点注销,至少没有Ajax和一些自定义检查。