1

我正在使用 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 功能),否则该应用程序永远不会保存会话。

4

1 回答 1

0

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

这适用于 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

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

如何在 Rails 中动态设置基于 cookie 的会话的到期时间

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

于 2013-07-10T18:20:21.737 回答