3

問題

次のエラーが表示されます。

"error": {
      "message": "Invalid redirect_uri: Given URL is not allowed by the Application configuration.",
      "type": "OAuthException",
      "code": 191
   }

それは非常に知られており、それに対処するためのさまざまな解決策を見つけましたが、残念ながらそれらのどれもがうまくいきました。

でローカルで実行しようとしていますが、動作させることlocalhost:3000ができません。

私の構成は一般的な構成です:

config/initializers/devise.rb

config.omniauth :facebook, '396783260390829', 'a504939e60c3410ed1becc44f41d4b94', {client_options: {ssl: {ca_file: Rails.root.join('lib/assets/cacert.pem').to_s}}}

Facebook の設定:

ここに画像の説明を入力

Routes.rb

devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }

devise_scope :user do
  get '/users/auth/:provider' => 'users/omniauth_callbacks#passthru'
end

私はすでに次のアプローチを試しました:

アプローチ 1:

OmniAuth.config.full_host = '`http://localhost:3000/`'

これは私をリダイレクトするので、私が得た最も近いものでしたが、アドレスは http://localhost:3000//users/auth/facebook/callbacks?xxx

最後のスラッシュなしですでに試しOmniAuth.config.full_host = 'http://localhost:3000'ましたが、191になりました。

アプローチ 2

ハックなしの通常の初期化子。

アプローチ 3

Facebook 設定ページでドメインを設定します。

アプローチ 4

アプリ ドメインを localhost に設定する

アプローチ5

Facebook 構成の Web サイトを次のように設定します。http://localhost:3000/users/auth/facebook

アプローチ6

localhost の代わりに自分の IP アドレスを使用して試してみたところ、同じエラーが発生しましたが、 の失敗OmniauthCallbacksControllerはなく、graph.facebook.com/oauth/authorize?

redirect_uri=http://localhost:3000/users/auth/facebook/callback

すべてのアプローチの結果

私が得たインラインで説明したものを除くすべてのケースで

OAuthException 191

コールバックを処理するために作成した OmniauthCallbackController の失敗メソッドで。

他の選択肢を知っている場合、または私を助けるために他に何かを見たい場合は、お気軽に質問または回答してください.


4

2 に答える 2

1

Facebook では、リダイレクト アドレスを localhost にすることは許可されていません。実際の IP アドレスまたは名前付きアドレスを使用する必要があります。同様の質問への回答を参照してください: Facebook アプリ - omniauth によるログイン - OAuthException 191

于 2013-02-05T00:52:56.940 に答える