3

使用移动 Safari 或 Chrome 关闭应用程序或选项卡时,会话不会保存并过期。另一方面,它在桌面浏览器上运行良好。

以下是唯一的会话配置。

配置/初始化程序/session_store.rb

# Be sure to restart your server when you modify this file.

Rails.application.config.session_store :cookie_store, {
  key: '_myapp_session',
  domain: :all
}
  • 红宝石:v2.3.0
  • 导轨 v4.2.8

谢谢你的帮助。

4

2 回答 2

1

有几件事可以尝试:

  • 检查您的移动设备上是否设置了“隐私浏览模式”

  • 确保您的密钥是独一无二的,而不是字面上的“_myapp_session”

  • 确保将 secret_token/secret_key_base(取决于 rails 版本)设置为唯一值

  • 尝试指定您想要的确切域而不是使用 :all (这只是要测试的东西我不知道在这种情况下移动浏览器是否会导致交互不良。)

于 2017-05-24T19:33:49.607 回答
0

你没有使用独立的应用程序(webapp,但有一个主屏幕图标)?独立应用程序甚至不保留持久性 cookie,因此无论何时关闭独立应用程序,所有会话信息都会丢失。

会话 cookie 也不应该是持久的(不应该有到期日期,默认情况下没有)。关闭浏览器(或选项卡)时,应该删除非持久性 cookie。所以实际上iOS可以正常工作。

我想如果你想让它持久化,你可以通过添加expire_after: 14.days或类似的方式。请注意这意味着什么!这被认为是一种安全风险,因为此类 cookie 将被写入磁盘,如果用户实际上没有注销,则重新打开浏览器将授予对应用程序的访问权限等。

于 2017-05-27T21:03:15.730 回答