1

私は非常に奇妙な問題を抱えていますが、本番サーバーでのみです。

Gemfile でこの Gem を使用していました。

gem "omniauth-facebook", "~> 1.4.1"

しかし、本番環境で突然次のエラーが発生し始め、ローカルでは正常に動作します。

heroku[router]: at=info method=GET path=/auth/failure?message=invalid_credentials&strategy=facebook host=www.myapp.com fwd="182.189.55.111" dyno=web.1 queue=0 wait=0ms connect=1ms service=90ms status=302 bytes=95

さまざまなフォーラムを検索したところ、一時的な解決策は 1.4.0 バージョンに戻すことです。

gem "omniauth-facebook", "1.4.0"

ローカルでも問題なく動作しますが、本番環境では別のエラー メッセージが表示されるようになりました。

OmniAuth::Strategies::Facebook::NoAuthorizationCodeError (must pass either a `code` parameter or a signed request (via `signed_request` parameter or a `fbsr_XXX` cookie)):

このリンクは、このバージョン 1.4.1 に再度アップグレードするように指示しています

ここではデッドロック/ループの状況のようです。誰でもこの問題に直面/修正できますか?

前もって感謝します。

4

1 に答える 1

1

JS SDK を使用してログインしていると思いますか? コードは次のようになります。

if (response.authResponse) {
  var url = "/auth/facebook/callback";
  window.location = url;
}

署名されたリクエストが自動的に渡されない理由はわかりませんが、次の回避策がうまく機能することがわかりました。

if (response.authResponse) {
  var url = "/auth/facebook/callback";
  url += '&' + $.param({ signed_request: response.authResponse.signedRequest });
  window.location = url;
}
于 2013-06-17T16:28:22.840 に答える