我注意到,当你在facebook上的“会话”已经过期时,会出现一个弹出窗口,表示你将被注销,我如何定期检查cookie是否已经过期? 我试过这个:
setInterval(function() {
if($.cookie('id') == null) {
location.reload;
}
},60000);
更新:抱歉,我注意到我没有说我想用ajax更新mysql查询的“状态”。这不是问题,但是如果我想这样做,我需要在cookie中设置ID,但是如果它已经过期我不能这样做:/,当用户登录时,我是否需要设置另一个具有长日期到期的cookie ?
答案 0 :(得分:1)
仅使用Cookie来跟踪用户是否已登录存在安全风险。最好使用cookie /服务器端会话的组合。大多数框架/ CMS都使用这种结构。由于facebook经常与用户进行通信,因此每次进行AJAX调用时,都会在响应中查找指示无效会话的内容。
如果您正在使用会话,则需要与服务器保持某种持续的通信才能实现此目的。
var check = setInterval(function() {
$.ajax( {
url : '/authorize/ajax/',
dataType: 'json',
success : function(data) {
if(data.unauthorized)
window.location.href="/login/";
}
}
} );
},5000);