Как сделать автоматический выход из системы с помощью ajax и django
Я хотел бы написать js функцию для автоматического выхода из системы, используя ajax и django. На самом деле я сделал и добился успеха. она работает нормально. но я не знаю, правильно ли это сделать. я выложил свой код и мне нужны ваши отзывы и пересмотренный или улучшенный код или правильный способ реализации функции автоматического выхода из системы.
Вот мой код. views.py
def user_logout(request):
logout(request)
is_ajax = request.headers.get("X-Requested-With") == "XMLHttpRequest"
if is_ajax:
print("auto logout works")
return JsonResponse({"redirect_link":"/login"},status=200)
else:
print("manuel logout works")
return redirect("/login")
ajax
<script language="javascript">
jQuery(document).ready(function(){
function getCookie(name) {
let cookieValue = null;
if (document.cookie && document.cookie !== "") {
const cookies = document.cookie.split(";");
for (let i = 0; i < cookies.length; i++) {
const cookie = cookies[i].trim();
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) === (name + "=")) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
setInterval(function(){
jQuery.ajax({
url: "{% url 'user-logout' %}",
headers: {"X-Requested-With": "XMLHttpRequest","X-CSRFToken": getCookie("csrftoken"),},
type: 'GET',
dataType: 'json',
success:function(response){
window.location.href="{% url 'user-login' %}"
alert("You are logged out");
}
});
}, 5000);
});
</script>