0

如果他/她的会话超时,我想将用户重定向到登录页面。如果用户单击我网页的任何链接,我如何将我的用户重定向到登录页面。链接可以是 ajax 调用或页面重新加载调用。

4

2 回答 2

0

您应该需要在控制器中调用 before_filter 函数。

您需要在控制器中添加此行,例如,

Class NAMEsController < ApplicationController
before_filter :authenticate_user!

为此,您需要确保在项目中安装了“设备”gem。

(或者)

而不是调用before_filter :authenticate_user!在您的控制器中编写您自己的函数来调用authenticate_user!. 就像是:

before_filter :logged_in

private
def logged_in
  your_function
  authenticate_user!
end

对于 ajax 调用,您需要自己动手。试试这个作为起点。

 before_filter :login_required, :only => [:index]

 before_filter(:only => :index) do |controller|
   login_required unless controller.request.format.js?
 end

你需要做一些自定义的测试脚本。它只是一个整理的想法。我不确定它是否工作正常。

于 2012-10-26T11:14:31.340 回答
0

您可以使用控制器中的 before_filter 功能轻松实现这一点...

这些过滤器将检查有效会话,如果它过期......将用户重定向到登录页面......还可以检查 Rails 中的 Notifications API

于 2012-10-26T07:01:36.027 回答