3

コンテキスト:sigupとログイン用のauthlogicを備えたRailsアプリセットアップ情報:Rails 2.3.2

アクション「show」を持つpostsと呼ばれるコントローラー。ログインすると、投稿/インデックスページが表示されます。

ユーザーがアイテムをクリックすると、アイテムの詳細が表示されます。かなり標準的なもの。

このすべては、開発と本番の両方で正常に機能し、ダンディです(ubuntuとmysqlのPassenger 2.2.5を使用したApache)。ただし、1つのケースで次の問題が発生します。

問題:Firefox / Safari / Chrome(IE7はOK)でのみ、本番環境でのみ、

ユーザーが新しいセッションに初めてログインすると(新しいブラウザーを開き、URLを入力)、インデックスページが正常に表示され、アイテムをクリックすると、ユーザーは不思議なことにLOGGED OUTになります(current_userはnullを返します)。

再度ログインすると、すべてが通常の状態に戻ります。ブラウザを閉じて再起動するまで、何度でもログアウトしてログインできます。問題はありません。

'show'以外のアクションは、current_userが保持され、正常に機能します。

質問:このposts / idのような呼び出しでユーザーセッションが失われるのは、初めてですか?ショーアクションは特別なことは何もしません。

私は同じ動作でセッション管理にActiveRecordストアとCookieの両方を使用しました。

誰もが手がかりを得ました、大いに感謝します!

4

1 に答える 1

3

これは、ユーザーが http://yoursite.comからhttp://www.yoursite.comにリダイレクトされているために発生している可能性があります。

この問題について言及しているブログは次のとおりです。http: //garrickvanburen.com/archive/rails-cookie-settings-for-cross-subdomain-sessions

ブログを言い換えると、修正は次のように設定されます: config.action_controller.session[:domain] = '.YOURDOMAIN.COM' environment.rbの内部(必ずプレフィックスを付けてください.)。これにより、Cookieはwww.yourdomain.comとyourdomain.com(およびその他のサブドメイン)の両方で機能します。

この手法についてもここで説明します: サブドメインを使用したRails2.3.2アプリでのセッションの喪失

于 2010-01-27T08:31:19.153 に答える