我仅在生产环境Heroku中遇到会话超时问题。
甚至我将(selectionChange)="onChange($event)"
中的optionSelectionChanges
设置为timeout_in
,并检查cookie的到期时间是2038年,但是当我在15分钟左右的时间内什么都不做时被迫注销。
config/initializers/devise.rb
此应用使用下面的20.years
设计和管理会话数据。
config.timeout_in = 20.years
您是否知道为什么会这样? 这是版本
cache_store
感谢您的阅读!
答案 0 :(得分:1)
您应将devise.rb
放在config/initializers
文件夹下。您所描述的内容表明Rails在引导过程中没有选择自定义timeout_in
。
请参阅https://github.com/plataformatec/devise#configuring-models进行Devise设置。
如果您想了解rails bootstrap的工作原理以及为什么该配置应放在config/initializers
文件夹中,请参见https://guides.rubyonrails.org/initialization.html#railties-lib-rails-application-rb。
答案 1 :(得分:0)
检查是否有~/config/initializers/session_store.rb
配置可能会覆盖您的设计设置。代码可能看起来像这样:
Rails.application.config.session_store :cookie_store, {
key: "_#{some-session-name-here}_session",
expire_after: 15.minutes
}
请注意,您的应用程序使用Rails 5.2.1.1,并且session_store.rb
已在Rails 5.1中删除。 session_store
配置仍然有效,但是不会自动生成,等等。