Ruby on rails 当应用程序在iOS Chrome和Safari中关闭时,Rails会话将过期
使用mobile Safari或Chrome关闭应用程序或选项卡时,会话不会保存并过期。另一方面,它在桌面浏览器上运行良好 下面是唯一的会话配置 config/initializers/session_store.rbRuby on rails 当应用程序在iOS Chrome和Safari中关闭时,Rails会话将过期,ruby-on-rails,session,mobile-safari,mobile-chrome,Ruby On Rails,Session,Mobile Safari,Mobile Chrome,使用mobile Safari或Chrome关闭应用程序或选项卡时,会话不会保存并过期。另一方面,它在桌面浏览器上运行良好 下面是唯一的会话配置 config/initializers/session_store.rb # Be sure to restart your server when you modify this file. Rails.application.config.session_store :cookie_store, { key: '_myapp_session'
# Be sure to restart your server when you modify this file.
Rails.application.config.session_store :cookie_store, {
key: '_myapp_session',
domain: :all
}
- Ruby:v2.3.0
- Rails v4.2.8
感谢您的帮助。有几件事可以尝试:
- 检查您的移动设备上是否未设置“私人浏览模式”
- 确保您的密钥是唯一的,并且不是字面上的“\u myapp\u session”
- 确保secret\u token/secret\u key\u base(取决于rails版本)设置为唯一值
- 尝试指定您想要的确切域,而不是使用:all(这只是要测试的东西,我不知道在这种情况下,移动浏览器是否会导致较差的交互。)
我想,如果你想让它持久化,你可以通过添加
expire\u在:14.天之后或类似的时间。但是要知道这意味着什么!这被认为是一种安全风险,因为此类cookie将被写入磁盘,如果用户没有实际注销,重新打开浏览器将授予对应用程序的访问权限,等等。感谢您的回复。我试试最后一个。你有没有想出解决这个问题的办法?我遇到了同样的事情。