【问题标题】:auto-session-timeout - Ruby on Rails自动会话超时 - Ruby on Rails
【发布时间】:2014-04-21 12:40:38
【问题描述】:

我是 Ruby on Rails 的新手。我正在尝试使用 gem 实现会话超时 自动会话超时。事情是我的会话正确过期。但我想要的是,当会话过期时,我希望 url 转到特定链接(比如 www.abcd.com)。我还希望在会话过期时调用一个方法。现在,在我重新加载 1 分钟后,我的会话已过期,但它会重新定位到同一页面。

我的应用程序控制器中有这个

auto_session_timeout 1.minute

在我的路线中

match 'active'  => 'sessions#active'
match 'timeout' => 'sessions#timeout'

在我的会话控制器中

def active
   p "--------------Active--------------"
  end

  def timeout

        p "------------TimeOut--------------"
        RestClient.post 'https://www.abcd.com', :ApplicationName => 'ABCD Website&Application', :URL => 'http://www.xyz.com/login/'
      end

我想我会在会话过期时得到这个方法。但它不起作用。提前致谢

【问题讨论】:

  • 如果我理解正确,为什么不能添加before_filter authenticate 或检查会话是否过期并从那里重定向用户的东西?这不应该有帮助吗?
  • @PamioSolanky 嗨,正如我之前所说,我真的不知道该怎么做。一位朋友告诉我,用这颗宝石很容易做到这一点,这就是我这样做的原因。你能按照你说的方式帮助我吗?

标签: ruby-on-rails ruby ruby-on-rails-3 session


【解决方案1】:

编辑你的文件-config/initializers/session_store.rb

App::Application.config.session_store :cookie_store, 
                                         :key => "_yourapp_session",
                                         :expire_after => 2.minutes

然后在您的应用程序控制器中: before_filter: authenticate

 def authenticate
    redirect_to some_path if session[:session_key].nil?
 end

注意:您必须手动设置会话密钥。 另外,检查这个答案应该有助于click here

【讨论】:

  • 这对@Nidhin 有帮助吗??
猜你喜欢
  • 1970-01-01
  • 2012-12-05
  • 2011-07-24
  • 2014-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多