1

我注意到当您在 facebook 上的“会话”已过期时,会出现一个弹出窗口,提示您将被注销,我如何定期检查 cookie 是否已过期?我试过这个:

    setInterval(function() {
    if($.cookie('id') == null) {
        location.reload;
    }
},60000);

更新:对不起,我注意到我并没有说我想用带有 ajax 的 mysql 查询来更新“状态”。这不是问题,但如果我想这样做,我需要在 cookie 中设置的 ID,但如果它已过期,我不能这样做:/,我是否需要在用户登录时设置另一个具有长日期过期的 cookie ?

4

1 回答 1

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);
于 2012-08-10T19:56:00.310 回答