gpt4 book ai didi

javascript - AJAX 函数检测 session 何时过期并注销

转载 作者:行者123 更新时间:2023-12-01 05:16:09 27 4
gpt4 key购买 nike

我有这个函数来检查当前选项卡中的 session 是否已过期。但是,如果我打开另一个选项卡并从那里注销,我当前的选项卡将不知道,并且它会以某种方式维持其 session ,直到我从导航菜单访问某个项目。有没有办法通过检测用户何时注销或用户 session 是否已过期来改进此问题?

现在的主要问题是他们是否打开另一个选项卡并从那里注销。

function check_if_logged_in(){
$.ajax({
method: "POST",
url: "<?php echo site_url('Common/CheckSession'); ?>",
beforeSend: function () {
$('.loading').show();
},
success: function(data){
if(data==="undefined"||data===null||data===0){
console.log("logged out");
// window.location.replace("<?php // echo BASE_URL;?>");
}else{
console.log("logged in");
}
$('.loading').fadeOut("slow");
},
});
}

这是我的 checkSession 函数

public function checkSession(){
if($this->logged_in()===false){
echo false;
}else{
echo true;
}
}

this->logged_in() 只是检查 session 是否仍然处于事件状态。

我已经阅读过有关 HTML5 的 LocalStorage 的内容。我想知道这是否会影响移动设备,因为网站本身是响应式的,而且我听说 iOS 或某些设备不支持 LocalStorage。

最佳答案

你应该编写一个可以在每个文件中访问的js函数。最有可能在您的页脚中。

然后编写以下代码,该代码将每隔 5 秒调用一次(您可以根据自己的方便进行更改)。

 $( document ).ready(function() {
setInterval(function () {
checkSession();
}, 5000);
});


function checkSession()
{
$.ajax({
type: "POST",
url: "your_session_checking_function",
success: function (data) {
data = JSON.parse(data);
if(data.response != "true")
{
window.location.href = 'redirect to login page';
}
}
});
}

然后根据ajax success得到的结果就可以重定向到登录页面了。

关于javascript - AJAX 函数检测 session 何时过期并注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49084166/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com