我希望能够在用户离开Django网站时自动注销用户。不仅在他们关闭浏览器时,还在他们导航到不同的站点时。这可能吗?
我向用户显示敏感数据,如果他们要转到新网址,然后点击后退按钮,我就不希望显示敏感数据。我希望他们被迫重新登录。
这可能吗?或者这是我在前端需要做的事情吗?
提前致谢!
答案 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