0

我想在我的 Rails 应用程序中的会话过期后呈现登录页面。我没有使用任何宝石进行身份验证。任何帮助将不胜感激。下面是我的应用程序控制器。

class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception
  before_filter :session_expiry, :except => [:login]

  def current_user
    if session[:user_id].nil?
      false
    else
      true
    end
  end
  helper_method :current_user 

  def session_expiry
    expire_time = session[:expires_at] || Time.now
    @time_left = (expire_time - Time.now).to_i
    unless @time_left > 0
      reset_session
      flash[:error] = 'Session Timeout!'
    end
  end
end
4

1 回答 1

1

也许您必须在 application_controller.js 中定义另一个方法来检查会话是否过期并在这种情况下重定向:

def redirect_to_login_if_session_expire
  redirect_to(login_path) if session[:user_id].nil?
end

:user_id可能在哪里current_user.id

于 2013-06-17T07:27:17.817 回答