2

本番サイトでは、rails3.2.3とauthlogic3.1.0を使用しています。どのブラウザでもRailsアプリケーションにログインできます。現在、Rails 3.2.6に移行しているほか、アセットパイプラインを使用するようにアップグレードしているため、authlogicも3.1.3にアップグレードしています。

問題は、Rails3.2.3とauthlogic3.1.0を実行している本番環境にログインできることですが、機能ブランチでRails3.2.6とauthlogic3.1.3にローカルにアップグレードする場合は、googlechromeとmobileの両方にログインしてください。 safariは機能しておらず、nilセッションのためにリダイレクトされますが、ログインはsafariとfirefoxでローカルに機能します。確認しましたが、すべてのテストデバイスでCookieが受け入れられています。唯一の問題は、gemバージョン以外のコードベースが変更されていないため、rails 3.2.3 /authlogic3.1.0とrails3.2.6/authlogic3.1.3の間にあるようです。

更新:ローカルのサーバーログで、Google Chromeとモバイルサファリの両方で次のように表示されます:警告:CSRFトークンの信頼性を確認できませんが、サファリでは確認できません。=csrf_meta_tagはapplication.hamlにあります

4

2 に答える 2

4

コードコミットに戻った後、エラーはsession_store.rbイニシャライザーの変更に起因していました。Cookieドメインが正しく設定されていなかったため、アプリ自体ではなくブラウザによってセッションがnilにリセットされていました。config / initializers / session_store.rbの次の行を変更した後:

Application.config.session_store :cookie_store, :key => "_troopswap_session", :domain => '*domain.tld*'

Application.config.session_store :cookie_store, :key => "_troopswap_session", :domain => :all

クッキーはドロップされておらず、ログインできます。

于 2012-07-25T16:52:36.923 に答える
0

これに深く踏み込むことなく、CSRFトークン検証機能を無効にしてみましたか。

あなたのアップデートで、CSRFについて警告するログについて言及しましたが、これにより、authlogicのレールがリクエストに偽造のフラグを立てていると私は信じるようになります。

于 2012-07-24T16:00:13.577 に答える