2013-11-21 67 views
1

我使用Slim Framework作爲後端,Backbone.js作爲前端框架。該應用程序創建,允許用戶提交一個表單,當他們這樣做,他們將收到郵件/ PDF收到一定的數據,並執行如下所述:當會話從後端超時時如何從前端註銷?

  • 用戶訪問該網站,要求收據。
  • 該網站讓他們登錄
  • 一旦他們做了,他們的詳細信息(用戶名,電子郵件等)將存儲在會話中。
  • 當他們通過api調用使用Backbone.js /前端提交表單時,會收到數據並生成收據。
  • 存儲在會話(用戶名,電子郵件)中的詳細信息在生成收據時使用。
  • 完成後,收據將被寄出。

問題方案:

用戶登錄,並填寫表格的一些細節後留下了很長的應用。服務器端會話超時但前端保持不變。用戶然後回來並填寫表格的其餘部分。但是,由於會話超時,後臺(用戶名,電子郵件)中設置的變量返回null,並且應用程序失敗或無法按預期工作。

我想通知用戶會話到期,如果沒有響應,請從前端註銷。此外,如果用戶關閉瀏覽器/標籤,我希望他們的會話註銷。

回答

2

您只需要一個客戶端JavaScript來檢查用戶是否在幾秒鐘內仍然登錄,並且您的服務器端還必須發送給客戶端,如果他/她仍然登錄。

function checkIfLogin(){ 
Backbone.ajax({ 
    dataType: "jsonp", 
    url: "URL HERE", 
    data: "", // if you have data 
    success: function(data){ 
     if(!data.isStillLogin){ 
     // statement if not login 
     }else{ 
     // call again the checker 
     setTimeout(checkIfLogin, 10000); 
     } 
    } 
}); 
} 
checkIfLogin();