Django,当他们离开网站时注销用户

时间:2015-02-26 23:39:57

标签: django

我希望能够在用户离开Django网站时自动注销用户。不仅在他们关闭浏览器时,还在他们导航到不同的站点时。这可能吗?

我向用户显示敏感数据,如果他们要转到新网址,然后点击后退按钮,我就不希望显示敏感数据。我希望他们被迫重新登录。

这可能吗?或者这是我在前端需要做的事情吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

查看此答案,了解如何检测访问者何时离开页面:

https://stackoverflow.com/a/19519701/1682844

文档:https://developer.mozilla.org/en-US/docs/Web/Guide/User_experience/Using_the_Page_Visibility_API

通过ajax注销用户:

from django.views.generic import View
from django.http import JsonResponse
from django.contrib.auth import logout


class LogoutView(View):
"""
The logout view class. This will log the user out and invalidate the session.
"""

    def post(self, *args, **kwargs):
        logout(self.request)
        return JsonResponse({'success': True}, **kwargs)

如果您只想退出'用户如果离开页面,请尝试挂钩' onbeforeunload'事件

$(window).unload(function () {
    /* login for ajax call goes here */
});

https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload