Ruby on Rails会话到期日期

时间:2017-07-01 09:36:48

标签: ruby-on-rails ruby session expired-cookies

我的应用程序中有以下行,它允许默认cookie到期日期为20分钟。

select ar.id from table1 t1, table2 t2, 
jsonb_array_elements(t2.jsonb_field_name2) obj ,  
jsonb_each(t1.jsonb_field_name1) cf  where t2.id = 
t1.second_table_id   
and obj->>'name' ='text field name' and obj->>'type' ='string' and 
cf.key = obj->>'id' and cf.value::text = 'value of text field' 

我想出于某些原因设置具体的过期日期。我曾尝试过以下几行,但他们无法做到。

Rails.application.config.session_store :cookie_store, key: '_rails-omniauth_session', expire_after: 20.minutes

如何设置自定义过期日期?

Ang建议,

感谢。

1 个答案:

答案 0 :(得分:1)

如果您需要通过应用程序中的所有控制器设置会话的有效期,只需将以下选项添加到config/intializers/session_store.rb文件中:

:expire_after => 60.minutes

如果您需要在不同的控制器或操作中设置不同的到期时间,请使用以下代码或某些before_filter

request.session_options = request.session_options.dup
request.session_options[:expire_after] = 5.minutes
request.session_options.freeze
  

只需要复制哈希值,因为它已经在那时冻结了

Source