我目前正在构建一个 rails 应用程序,使用设计 gem 进行身份验证。
目前在应用程序中只实现了客户端超时功能,我认为这不是一个好的最终解决方案。因为它不包括用户让他们的计算机进入睡眠状态的情况,只是为了 1 个例子。
所以我想在设计中实现超时模块,但是我面临着几个问题。问题是因为服务器端超时,用户需要导航到不同的页面,然后才能重定向到登录页面。当用户在 UI 中打开模式时,我的应用程序中有很多交互,这将触发 AJAX 调用(如果它们在服务器端超时,则会失败)。
以下是我想到的两种方法,但我不认为它们是好的解决方案,所以也许有人可以在其中一种方法的基础上构建或帮助我指出不同的方向:
1.) 在我的 AJAX 请求中,在“错误”回调中添加一个处理程序,如果错误回调返回 401 Unauthorized 响应,它将告诉用户刷新页面或转到登录页面。
缺点:应用程序中有很多这样的 ajax 请求,所以会有很多重复的代码,我认为这很难维护。
2.)向正文添加一个点击处理程序,每次触发时,向后端发送请求以验证用户是否仍然登录。如果他们没有将用户重定向到登录页面。
缺点:性能问题
任何意见,将不胜感激。谢谢。