Facebookログインメッセージ:「URLがブロックされました:リダイレクトURIがアプリのクライアントOAuth設定でホワイトリストに登録されていないため、このリダイレクトは失敗しました。」


121

重要なお知らせ:

テストに登録する場合は、プロファイル設定に移動し、興味のあるプロファイル削除プロファイル追加します

Facebookで自分のウェブサイトにログインしようとしています:

次のエラーが発生します。

ブロックされたURL:リダイレクトURIがアプリのクライアントOAuth設定でホワイトリストに登録されていないため、このリダイレクトは失敗しました。クライアントとWeb OAuthログインがオンになっていることを確認し、すべてのアプリドメインを有効なOAuthリダイレクトURIとして追加します。

settingsFacebookでの私の(基本)は次のとおりです。

詳細タブで、Valid OAuth redirect URIsは次のように設定されています。

http://openstrategynetwork.com/_oauth/facebook?close

アプリはpublicです。

ここでの詳細設定(詳細): ここに画像の説明を入力してください

アプリのキーとシークレットが正しい。Meteorとそのアカウントパッケージを使用しています。


あなたのROOT_URLは何ですか?
aedm 2016年

FacebookのサインインページにリダイレクトするためにどのURLを使用していますか?それでも、承認リクエストでredirect_uriを指定する必要があります。
エドワードジャン

@aedm:ROOT_URLは次のように設定されますhttp://openstrategynetwork.com
Amir Rahbaran

@EdwardJiang:どこでできる?それはかつてlocalhostのために働いていたので、それは奇妙です。しかし、localhostでさえもう機能していません。
Amir Rahbaran、2016年

この問題も発生しています
。redirect_uri

回答:


80

サイトの[Facebookでログイン]ボタンは次のリンクになっています。

https://www.facebook.com/v2.2/dialog/oauth?client_id=1500708243571026&redirect_uri=http://openstrategynetwork.com/_oauth/facebook&display=popup&scope=email&state=eyJsb2dpblN0eWxlIjoicG9wdXAiLCJjcmVkZW50aWFsVG9rZW4iOiIwSXhEU05XamJjU0VaQWdqcmF6SXdOUWRuRFozXzc0X19lbVhGWUJTZGNYIiwiaXNDb3Jkb3ZhIjpmYWxzZX0=

通知: redirect_uri=http://openstrategynetwork.com/_oauth/facebook

代わりにリンクを次のように変更した場合:

redirect_uri=http://openstrategynetwork.com/_oauth/facebook?close

うまくいくはずです。または、Facebookリンクを次のように変更できますhttp://openstrategynetwork.com/_oauth/facebook

http://localhost/_oauth/facebook有効なリダイレクトURIに追加することもできます。

FacebookではリダイレクトURIをホワイトリストに登録する必要があります。そうしないと、人々がサービスのためにFacebookにログインし、アクセストークンを攻撃者のサーバーに送信する可能性があります。そして、あなたはそれが起こることを望まない;]


4
正確にはOAuthリダイレクトURIとは何ですか?これはルートWebアプリと同じURLになると思います。
AlvinfromDiaspar 2016年

1
これは動作するようです。もともと私がアプリを作成したアカウントでログインしようとしていたのではないかどうかはわかりませんが。このソリューションを実装し、別のアカウントを使用したところ、機能したようです(一見)。oAuthリダイレクトURIの言語と情報は明確である必要があります。情報は難解でほとんど難解です。使用される用語は、定義も明確化もされていません。
abtecas

おかげで私の問題は修正されました!sslが機能しているにもかかわらず
Sweet Chilly Philly

秘訣は、リダイレクトURLを見て、それを「有効なOAuthリダイレクトURI」に追加することです。私の場合は、サインインFacebookです。
Usama Saleem

1. 有効な認証リダイレクトURIに
Bhavin Rana

79

質問者が書いているように

詳細タブで、有効なOAuthリダイレクトURIは次のように設定されています。

私は同じ問題を抱えていました(リダイレクトURLを間違った入力フィールドに書き込む)それを強調したいと思います

そうではありません

Settings -> Advanced -> Share Redirect Whitelist

だが

Facebook Login -> Settings -> Valid OAuth redirect URIs

試行錯誤の2時間を節約できたでしょう。

またwww.example.com、とは異なることも覚えておく必要があります example.com。両方の形式をリダイレクトURLに追加します。


11
反対投票者:懸念事項についてコメントを追加してください。そうしないと、回答が良くなることはありません。
アンディメル

6
イエス様、私は間違った場所を探すのに多くの時間を費やしました、ありがとう。
リックス2018

新しいURIを追加しようとすると、次のようになります。New HTTP Redirect URIs are not allowed:(
XCS

本当にありがとう。私はすべてを試しましたが、間違った場所で。「Share Redirect Whitelist」とはどういう意味ですか?
Sunil Kumar

19

これでうまくいきました。

redierct_url = http://127.0.0.1:8080/accounts/facebook/login/callback/

私は、Facebookのボタンをクリックした後、ブラウザーからFacebook APIと統合するためのリンクにリダイレクトされるので、リダイレクトを取得します。私の場合、リンクはこれで、redirect_urlを取得しました。

https://www.facebook.com/dialog/oauth?client_id=...&scope=&response_type=code&state=...&redirect_uri=http://127.0.0.1:8080/accounts/facebook/login/callback/

ここに画像の説明を入力してください ここに画像の説明を入力してください


私のMVCアプリケーションでは、サイトのURLに「/ signin-facebook」を追加する必要がありました。すばらしいヒントをありがとう!
ダヴァウス

あなたは私の週を保存します@Umar Asghar
kn3l

11

アプリドメイン」とFacebookログイン=>有効なOAuthリダイレクトURIを確認してください。あなたはそこに確認する必要があり、WWWWWWなしに。php、html、cssファイルのすべてのURLとFbアプリの設定でwwwを使用する場合と使用しない場合の方が良いです。

また、URLの末尾に「/」を使用している場合は、そのURLを有効なOAuthリダイレクトURIのアプリ設定に追加する必要があります。例: - https://www.example.com/index.php/ このURLの場合youreのリダイレクトURLに使用する場合は、アプリの設定にあることを設定する必要があります。

これがお役に立てば幸いです。


アプリドメインでwwwの有無にかかわらず追加
qwertzman

この投稿の友達とはどういう意味ですか。
TheBAST

6

私のノードアプリケーションでは、

"facebook": {
        "clientID" : "##############",
        "clientSecret": "####################",
        "callbackURL": "/auth/facebook/callback/"
    }

相対コールバックURLを置く

次のような私のOAuthリダイレクトURI

ここに画像の説明を入力してください

Facebookの認証リダイレクトURIの最後に「/」が含まれていることを確認してください

これらの設定は私にとってはうまくいきました。


6

私の場合、アプリケーションドメインリダイレクトURLにwwwがある場合とない場合の両方のURLがあることを確認する必要がありました。

ここに画像の説明を入力してください

私の場合はsignin-facebook、サイトのURLの後にリダイレクトURL を使用する必要がありました。


アプリドメインは本当に必要ですか?ローカルでテストしたところ、アプリドメインを設定しなくても機能しました
Darius.V

oAuthとリダイレクトを使用していますか?
Hooman Bahreini、

はい。私はsymfonyバンドルgithub.com/knpuniversity/oauth2-client-bundle
Darius.V

3

変更hauth.done =フェイスブックhauth_done = Facebookの有効なOAuthリダイレクトURIの中には、私のためにそれを修正しました。


1

Ok最初に、これは非常に明確なエラーメッセージです。ちょうど私の多くの開発者がこれを見逃しているのを見てください。こちらのスクリーンショットをご覧ください。

ここに画像の説明を入力してください

製品> Facebookログイン>設定

または、このURLにアクセスしてください(YOUR_APP_IDをアプリIDで置き換えてください):

https://developers.facebook.com/apps/YOUR_APP_ID/fb-login/settings/

作業してlocalhost:3000いる場合は、https://localhost:3000/auth/facebook/callback

もちろん、ステータスをライブにする必要はありません(右上隅の緑のスイッチ)。私の場合、私は今、herokuにデプロイしており、すぐに次のように置き換えlocalhost:3000られますhttps://myapp.herokuapp.com/auth/facebook/callback

もちろん、設定/基本と設定/詳細でURLを更新し、基本セクションにプライバシーポリシーのURLを追加します。

deviseを使用していて、適切なfacebook gem 'omniauth-facebook', '~> 4.0'gemがインストールされておりgem 'omniauth', '~> 1.6'、ユーザーテーブルにuid、image、providerなどの必要な列がある場合は、initializers / devise.rbが適切に構成されていると想定しています。それでおしまい。


1

それは誰かを助けるかもしれません。

同様のエラーメッセージが表示されましたが、本番環境ではなく、開発環境とステージング環境でのみでした。有効なリダイレクトURIは、devサブドメインとステージングサブドメイン、および本番環境に対して正しく設定されていました。

これらの環境では、FB開発者ページの別のアプリであるテスト用FBアプリを使用することを忘れていました。それを選択して設定を更新する必要がありました。


0

独自のリダイレクトURLとともに、http://openstrategynetwork.com/ sigin-facebookをクライアントOAuth設定の有効なリダイレクトURLに追加してみてください。


0

あなたのサイトのログインヘルパー

$ loginUrl = $ helper-> getLoginUrl( 'xyz.com/user_by_facebook/'、$ permissions);

およびFacebookアプリケーションダッシュボード([製品]タブ:Facebookログイン

有効なOAuthリダイレクトURIもxyz.com/user_by_facebook/と同じである必要があります

前述のようにウェブからリクエストを行う


0

私たちにも同じような悪夢がありました。

  1. アプリIDと秘密鍵が正しいことを確認してください。テスト用に別々の開発、ステージング、および本番用アプリを使用している場合、アプリIDとシークレットキーはすべてアプリごとに異なります。これはしばしば問題です。

  2. アプリの設定ファイルでコールバックURLが正しく設定されていることを確認してください(以下を参照)。次に、「Facebookログイン」設定の下の「有効なOAuthリダイレクトURI」と同じURLとしてこれを追加します。次のようになります(環境によって異なります)。

http://localhost/auth/facebook/callback http://staging.example.com/auth/facebook/callback http://example.com/auth/facebook/callback

  1. アプリドメインが「www」と「no-www」の両方を含む各環境の正しいドメインに設定されていることを確認してください。Facebookでは、これらのドメインがWebサイトまたはアプリプラットフォームのURLと一致することも必要です。これを追加するには、「プラットフォームの追加」を選択する必要があります。

リダイレクトURIをWebサイトのURLと一致させる必要はありません。リダイレクトURIまたは別のサーバーで定義されていて、私のWebサイトは別のサーバーから提供されているため、どうすればよいですか?
ジャワド

0

私の場合、私はFacebookログインをRailsアプリのチュートリアルに統合していました。有効なOAuthリダイレクトURIにhttp:// localhost:3000 / adsfを追加しましたが、RailsアプリはURLをhttp://0.0.0.0:3000として開くため、http://0.0にリダイレクトしようとします。 0.0:3000 / asdf。有効なOAuthリダイレクトURIにhttp://0.0.0.0:3000/asdfを追加するか、http:// localhost:3000 / asdfに移動すると、期待どおりに機能しました。


0

私の場合、FBで定義されているURIは問題ありませんでしたが、Spring Securityを使用していて、; jsessionid = 0B9A5E71DAA32A01A3CD351E6CA1FCDDをURI に追加していたため、不一致が発生しました。

https://m.facebook.com/v2.5/dialog/oauth?client_id=your-fb-id-code&response_type=code&redirect_uri=https://localizator.org/auth/facebook;jsessionid=0B9A5E71DAA32A01A3CD351E6CA1FCDD&scope=email&state=b180578a-007b-48bc-bd81-4b08c6989e18

URLの書き換えを回避するために、Spring Securityの構成にdisable-url-rewriting = "true"を次のように追加しました。

<http auto-config="true" access-denied-page="/security/accessDenied" use-expressions="true"
      disable-url-rewriting="true" entry-point-ref="authenticationEntryPoint"/> 

そして、それは私の問題を修正しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.