2009-06-02 26 views
1

2つのアプリケーションがあり、それらのセッションを共有したいと思っています。少なくともこれまではこれは簡単なことではありません。今私はいくつかの間違いの問題で走っています。アプリケーション間でレールセッションを共有

environment.rbに同じsession_keyとsecretを設定していて、2つのアプリケーションが同じセッションを共有していませんでした。

development.rbに何かがあるかどうかを確認しました。

クッキーなどをクリーンアップしようとしましたが、何もありません。

私は秘密を変えようとしましたが、幸運にも私は短くて簡単なもの(mysecret)に変更しようとしました。アプリ1を実行しても問題ありませんでしたが、実行中のアプリ2は実行されました:

c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/session/cookie_store.rb:188:in `ensure_secret_secure': Secret should be something secure, like "f1e78444a4c3402165606a8314d29704". The value you provided, "myownsecret", is shorter than the minimum length of 30 characters (ArgumentError) 
    from c:/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_c 

両方のアプリは2.3.2で動作しています。

次に、両方のアプリケーションのコンソールを試してみたところ、秘密が非常に同じであることを確認しました。

ここには何が影響しますか?

+0

あなたはこの問題を解決しましたか? – Jim

答えて

1

ドメイン名と関係がありますか?セッションクッキーがドメインごとに格納されていることは間違いありません。下のコードを使用して上書きすることができます - 各アプリケーションごとに異なるサブドメインを持つ同じドメインを使用している場合(config/environments/production.rbに配置するか、development.rbに配置する必要がある場合) DEVモードすぎ):

ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS[:session_domain] = '.yourdomain.com' 

編集:Railsの2.3構文では次のとおりです。

config.action_controller.session = { 
    :domain => ".yourdomain.com" 
} 
関連する問題