Rails会话超时/警告



我一整天都在努力研究这个问题,但一直没能找到符合我需求的东西。我们需要为应用程序创建一个会话超时(简单),但我们也需要在会话超时发生前x分钟显示一条警告消息。

我已经用activerecord_session gem设置了我的应用程序,并进行了必要的配置更改。我可以写这样的东西:

before_action :determine_if_session_timed_out

在ApplicationController中。我对这种方式的主要担忧是数据库命中率,而且似乎应该有一种rails方式来实现这一点,类似于上面链接的gem在xx分钟后到期的方式,但这是一个警告。

我的两个问题是——有人见过以下应用程序吗:

  • 当会话即将超时时,是否有内置的rails方式来显示警告
  • 会话超时后自动重定向?上面gem的expire_after实现看起来页面没有重定向。它一直停留在同一页上,直到调用另一个操作,然后重定向

应用程序中的Ajax请求可以被这段代码捕获,。

 $(document).ajaxError(function(e, error) {   switch(error.status) {
     case 401: {
       // page redirect unauthorized access.
       location.reload();
       alert(xhr.responseText);
     }   }

您可以使用jquery来研究这种方法(https://codedecoder.wordpress.com/2014/05/01/jquery-inactivity-warning-logout-timer-setinterval-clearinterval/)

最新更新