【问题标题】:Session expiring on Safari MobileSafari Mobile 上的会话即将到期
【发布时间】:2013-07-04 03:57:10
【问题描述】:

我正在使用 rails 3.2.13,我想将 active_record 会话存储更改为 24 小时,所以我设置了:

Uauauanamobile::Application.config.session_store :active_record_store, :expire_after => 24.hours 

在 config/initializers/session_store.rb 但如果我检查我的 iPhone Safari 的 cookie,我看不到 _session_id cookie,当然也不存在(ominauth 失败)。 这是一个错误吗?

我需要设置到期时间,因为如果我将我的网站用作 Web 应用程序(使用添加到主屏幕 iOS 功能),否则该应用程序永远不会保存会话。

【问题讨论】:

    标签: ruby-on-rails mobile cookies


    【解决方案1】:

    我在另一个问题中找到了答案,但作为参考我会复制它(另一个问题是针对另一个问题的,但解决方案是相同的)

    这适用于 rails 3.x,因此解决方案是在每个请求中设置过期时间,如下所示:

        class ApplicationController < ActionController::Base
    
          after_filter :short_session
    
          ...
    
          def short_session
            request.session_options = request.session_options.dup
            request.session_options[:expire_after] = 1.minute
            request.session_options.freeze
          end
    

    这是获取此代码的原始答​​案。

    How to I dynamically set the expiry time for a cookie-based session in Rails

    是的,这解决了 iOS 中 webapp 模式不保存会话的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      • 1970-01-01
      • 2011-09-19
      • 2020-09-24
      • 1970-01-01
      • 2019-08-20
      • 1970-01-01
      相关资源
      最近更新 更多