gpt4 book ai didi

javascript - 当 session 从后端超时时如何从前端注销?

转载 作者:行者123 更新时间:2023-11-29 06:43:19 25 4
gpt4 key购买 nike

我使用 Slim Framework 作为后端,使用 Backbone.js 作为前端框架。创建该应用程序是为了允许用户提交表单,当他们这样做时,他们将收到包含某些数据的邮件/pdf 收据,其执行如下所述:

  • 用户访问网站以请求收据。
  • 网站要求他们登录
  • 一旦他们这样做,他们的详细信息(用户名、电子邮件等)就会存储在 session 中。
  • 当他们使用 Backbone.js/Front-end 通过 API 调用提交表单时,会收到数据并生成收据。
  • 在生成收据时使用存储在 session 中的详细信息(用户名、电子邮件)。
  • 完成后,将邮寄收据。

问题场景:

用户登录,并在填写表单的一些详细信息后让应用程序打开很长时间。服务器端 session 超时,但前端保持不变。然后用户返回并填写表格的其余部分。但是,由于session超时,后台设置的变量(username,email)返回null,应用程序要么失败,要么没有按预期工作。

我想通知用户 session 过期,如果没有响应,从前端注销。此外,如果用户关闭浏览器/选项卡,我希望他们的 session 注销。

最佳答案

你只需要一个客户端 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();

关于javascript - 当 session 从后端超时时如何从前端注销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20110781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com