2012-08-10 100 views
1

我注意到,當你的Facebook上的「會話」過期時,出現一個彈出窗口說你將被註銷,我如何定期檢查cookie是否已過期? 我試着用這樣的:檢查cookie是否已過期,如果是註銷用戶

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

UPDATE:對不起,我注意到,我沒有說我想更新了「狀態」與一個MySQL查詢與阿賈克斯。這不是問題,但如果我想這樣做,我需要在Cookie中設置ID,但如果過期了,我不能這樣做:/我需要在用戶登錄時設置另一個帶有長日期到期的cookie ?

+0

你'試過這個'...和? :) – Stefano 2012-08-10 19:52:46

+0

FB cookies可以通過JavaScript訪問嗎?這聽起來像個糟糕的主意(雖然我不會感到驚訝) – PeeHaa 2012-08-10 19:52:55

+0

對不起,我注意到我沒有說我想用ajax更新mysql的查詢狀態。這不是問題,但如果我想這樣做,我需要在Cookie中設置ID,但如果過期了,我不能這樣做:/我需要在用戶登錄時設置另一個帶有長日期到期的cookie ? – Denn 2012-08-10 19:56:19

回答

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);