2013-11-21 69 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();