我的前端时jquery,后端是django。我利用django自带的auth管理后台搭建了一个页面授权访问的页面。发现其实还是基于session的生成与注销(不知这个理解对不对)。
为此,关于注销用户的问题来了,结合前端与后端,如何实现以下session的注销操作?
1)前端停止操作600秒,注销用户,回到登录页面?
2)关闭选项卡、标签页(浏览器)时注销用户;
3)提供主动注销用户的链接,点击后注销用户,回到登录页面
请教各位!
要实现注销用户的操作,可以考虑在前端和后端进行配合来实现。
首先,为了在前端实现定时注销,可以使用 JavaScript 的 setInterval() 方法定时检查用户最后一次操作的时间,并在超过一定时间后调用注销方法。具体地,可以使用 setTimeout() 方法来实现在一定时间后调用注销方法。例如,以下代码将在用户最后一次操作时间超过 600 秒后调用注销方法:
var timeoutID = window.setTimeout(logout, 600000);
$(document).on('mousemove click keydown', function() {
window.clearTimeout(timeoutID);
timeoutID = window.setTimeout(logout, 600000);
});
function logout() {
// 在此处发送注销请求到后端
window.location.href = "/logout";
}
window.onbeforeunload = function() {
// 在此处发送注销请求到后端
logout();
}
<button onclick="logout()">注销</button>
from django.contrib.auth import logout
def logout_view(request):
logout(request)
return HttpResponseRedirect('/login')
django 自带的auth 提供了一个 logout 方法 用于退出登陆。
from django.contrib.auth import logout
def logout_view(request):
logout(request)
# Redirect to a success page.
你可以写一个退出登录接口,调用自带的logout函数即可注销当前用户的session。
虽然还有遗憾,但已经很感谢了,结贴!!!