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 は失敗します)。これはバグですか?

有効期限を設定する必要があるのは、(iOS のホーム画面に追加機能を使用して) Web アプリとして自分のサイトを使用する場合、それ以外の場合、アプリはセッションを保存しないためです。

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 に答える