ruby-on-rails - Ruby on Rails session 过期日期

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

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

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

Bu 出于某些原因我想设置特定的到期日期。我尝试了以下几行,但他们做不到。

request.session_options[:expire_after] = 2.years
ActionController::Base.session_options[:expire_after] = 2.years

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

昂建议,

谢谢。

最佳答案

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

:expire_after => 60.minutes

如果需要在不同的controller或者action中设置不同的过期时间,在action中或者一些before_filter中使用如下代码:

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

Duplication of the hash is needed only because it is already frozen at that point

Source

关于ruby-on-rails - Ruby on Rails session 过期日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44859453/

相关文章:

PHP $_SESSION 值设置不正确

ruby-on-rails - RoR : Devise: After logging in, 重定向到登录页面,登录后如何设置重定向?

ruby-on-rails - Rails 最佳实践 : Handling multiple relations in a single controller

ruby - 枚举器的 uniq::Lazy

ruby-on-rails - 使用 ruby​​ 从字符串创建 json 对象

Chef 上的 Ruby 代码为 "ruby_block"无法正常工作

session - 交响乐 1.4 : Storing an array in session with SetAttribute

node.js - 如何对多个主机名使用同一个 Express session ?

ruby-on-rails - Rails 中每个循环的最后一次迭代不要有逗号

ruby-on-rails - 是否存在 Ruby 1.8.7 time.strftime %z 错误?