問題
次のエラーが表示されます。
"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 の失敗メソッドで。
他の選択肢を知っている場合、または私を助けるために他に何かを見たい場合は、お気軽に質問または回答してください.