Facebook-Anmeldemeldung: "URL blockiert: Diese Umleitung ist fehlgeschlagen, da der Umleitungs-URI in den Client-OAuth-Einstellungen der App nicht auf der Whitelist steht."

121

Wichtiger Hinweis:

Wenn Sie sich zum Testen registrieren, gehen Sie zu Ihren Profileinstellungen und fügen Sie zu Ihren Interessen das Löschprofil hinzu .

Ich versuche mich mit Facebook auf meiner Website anzumelden :

Ich erhalte folgende Fehlermeldung:

URL blockiert: Diese Umleitung ist fehlgeschlagen, da der Umleitungs-URI in den Client-OAuth-Einstellungen der App nicht auf der Whitelist steht. Stellen Sie sicher, dass die Client- und Web-OAuth-Anmeldung aktiviert ist, und fügen Sie alle Ihre App-Domänen als gültige OAuth-Umleitungs-URIs hinzu.

Meine settings(Grundlagen) in Facebook sind:

Auf der Registerkarte "Erweitert" wird Folgendes Valid OAuth redirect URIsfestgelegt:

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

App ist public.

Weitere Einstellungen (Erweitert) hier: Geben Sie hier die Bildbeschreibung ein

App-Schlüssel und Geheimnis sind korrekt. Ich verwende Meteor und seine Kontopakete.

Amir Rahbaran
quelle
Was ist deine ROOT_URL?
Aedm
Welche URL verwenden Sie, um zur Facebook-Anmeldeseite umzuleiten? Sie müssen die redirect_uri noch in der Autorisierungsanforderung angeben.
Edward Jiang
@aedm: ROOT_URL ist eingestellt aufhttp://openstrategynetwork.com
Amir Rahbaran
@ EdwardJiang: Wo kann ich das machen? Es ist seltsam, wie es einmal für localhost gearbeitet hat. Aber auch localhost funktioniert nicht mehr.
Amir Rahbaran
Ich habe auch dieses Problem, redirect_uri stimmt genau mit der Konfiguration in den Client-OAuth-Einstellungen überein - siehe mehr unter developer.facebook.com/support/bugs/232085950706415 brauche Hilfe .. danke im Voraus
jdme

Antworten:

80

Der Login mit Facebook-Button auf Ihrer Website verlinkt auf:

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

Beachten: redirect_uri=http://openstrategynetwork.com/_oauth/facebook

Wenn Sie stattdessen den Link ändern zu:

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

Es sollte funktionieren. Oder Sie können den Facebook-Link zu ändernhttp://openstrategynetwork.com/_oauth/facebook

Sie können auch http://localhost/_oauth/facebookgültige Umleitungs-URIs hinzufügen .

Facebook erfordert, dass Sie URIs auf die Whitelist umleiten, da sich die Benutzer sonst bei Facebook für Ihren Dienst anmelden und dann ihr Zugriffstoken an den Server eines Angreifers senden könnten! Und du willst nicht, dass das passiert;]

Edward Jiang
quelle
4
Was genau ist eine OAuth-Umleitungs-URI? Ich würde erwarten, dass dies dieselbe URL wie die Root-Web-App ist.
AlvinfromDiaspar
1
Das scheint zu funktionieren. Obwohl ich nicht sicher bin, ob es nicht ursprünglich war, als ich versuchte, mich mit dem Konto anzumelden, unter dem ich die App erstellt habe. Implementierte diese Lösung und verwendete ein anderes Konto und es funktionierte (scheinbar). Die Sprache und Informationen zu oAuth-Umleitungs-URIs müssen klar sein. Die Info ist ziemlich esoterisch und fast arkan. Die verwendeten Begriffe werden nicht einmal definiert oder geklärt.
Abtecas
Vielen Dank, mein Problem wurde behoben! obwohl ich ssl zum Laufen gebracht habe
Sweet Chilly Philly
Der Trick besteht darin, sich die Weiterleitungs-URL anzusehen und diese zu den "Gültigen OAuth-Umleitungs-URIs" hinzuzufügen, in meinem Fall "signin-facebook".
Usama Saleem
1. Stellen Sie sicher, dass Sie Ihre gültigen Auth-Weiterleitungs-URIs
Bhavin Rana
79

Wie der Fragesteller schreibt

Auf der Registerkarte "Erweitert" werden gültige OAuth-Umleitungs-URIs auf Folgendes festgelegt: ...

und ich hatte das gleiche Problem (Schreiben der Weiterleitungs-URL in das falsche Eingabefeld) Ich möchte das hervorheben

Es ist nicht

Settings -> Advanced -> Share Redirect Whitelist

aber

Facebook Login -> Settings -> Valid OAuth redirect URIs

Es hätte mir 2 Stunden Versuch und Irrtum erspart.

Sie sollten auch bedenken, dass dies www.example.comnicht dasselbe ist wie example.com. Fügen Sie der Umleitungs-URL beide Formate hinzu.

Andymel
quelle
11
Down-Voter: Bitte fügen Sie einen Kommentar zu Ihren Bedenken hinzu, sonst wird die Antwort nicht besser.
Andymel
6
Jesus, ich habe so viel Zeit damit verbracht, am falschen Ort zu suchen, danke.
Ricks
Beim Versuch, einen neuen URI hinzuzufügen, erhalte ich New HTTP Redirect URIs are not allowed
::
Vielen Dank. Ich habe alles versucht, aber am falschen Ort. Was bedeutet "Reditel-Whitelist teilen"?
Sunil Kumar
19

Das hat bei mir funktioniert.

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

Ich habe das von meinem Browser erhalten, nachdem ich auf die Facebook-Schaltfläche geklickt habe. Ihr Browser wird zu einem Link zur Integration in die Facebook-API weitergeleitet, sodass Sie diese Weiterleitung erhalten. Für meinen Fall war der Link der, von dem ich die redirect_url bekam.

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/

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Umar Asghar
quelle
Für meine MVC-Anwendung musste ich der Site-URL "/ signin-facebook" hinzufügen ... danke für den wunderbaren Tipp!
Davaus
Sie retten meine Wochen @Umar Asghar
kn3l
11

Stellen Sie sicher, dass " App Domain " und Facebook Login => Gültige OAuth-Umleitungs-URIs . Dort müssen Sie www oder ohne www überprüfen . Es ist besser, wenn Sie mit www oder ohne für alle URLs in PHP-, HTML-, CSS-Dateien und Fb-App-Einstellungen verwenden.

Wenn Sie das Ende der URLs "/" verwenden, müssen Sie diese URL zu den App-Einstellungen der gültigen OAuth-Umleitungs-URIs hinzufügen . Beispiel: - https://www.example.com/index.php/ Wenn Sie diese URL in der Umleitungs-URL verwenden, müssen Sie diese auf App-Einstellungen setzen.

Hoffe das wäre Hilfe.

Sumith Harshan
quelle
in der App-Domain fügen Sie sowohl mit als auch ohne www
qwertzman
Was meinst du mit diesem Beitrag Freund, ich bin ein bisschen verwirrt.
TheBAST
6

Für meine Knotenanwendung

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

Rückruf-URL relativ setzen

Meine OAuth leitet URIs wie folgt um

Geben Sie hier die Bildbeschreibung ein

Stellen Sie sicher, dass "/" am Ende der Facebook-Authentifizierungs-Umleitungs-URI steht

Diese Einstellungen haben bei mir funktioniert.

NIKHIL CM
quelle
6

In meinem Fall musste ich nur sicherstellen, dass ich meine URLs mit und ohne www für Application Domain- und Redirect-URLs habe :

Geben Sie hier die Bildbeschreibung ein

In meinem Fall musste ich signin-facebookFolgendes verwenden: Nach der URL meiner Website, um die URL umzuleiten.

Hooman Bahreini
quelle
Werden App-Domains wirklich benötigt? Als ich lokal getestet habe, hat es funktioniert, ohne App Domains
Darius.V
Verwenden Sie oAuth und Redirection?
Hooman Bahreini
Ja. Ich benutze das Symfony-Bundle github.com/knpuniversity/oauth2-client-bundle
Darius.V
3

Der Wechsel von hauth.done = Facebook zu hauth_done = Facebook in den gültigen OAuth-Umleitungs-URIs hat dies für mich behoben.

girlgeek
quelle
1

Ok Zunächst einmal ist dies eine sehr klare Fehlermeldung. Schau dir nur an, wie viele Entwickler dies vermissen, auch ich selbst. Schauen Sie sich bitte den Screenshot hier an.

Geben Sie hier die Bildbeschreibung ein

Unter Produkte> Facebook Login> Einstellungen

oder gehen Sie einfach hier zu dieser URL (Ersetzen Sie YOUR_APP_ID durch Ihre App-ID lol):

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

Wenn Sie daran arbeiten localhost:3000Stellen Sie sicher, dass Sie habenhttps://localhost:3000/auth/facebook/callback

Ofcourse Sie müssen den Status nicht haben Live (Grün einschalten rechts oben) , aber in meinem Fall, ich Heroku jetzt bin Einsatz und wird in Kürze ersetzen localhost:3000mithttps://myapp.herokuapp.com/auth/facebook/callback

Natürlich werde ich die URLs unter "Einstellungen" / "Basis" und "Einstellungen" / "Erweitert" aktualisieren und im Abschnitt "Basis" eine URL für Datenschutzrichtlinien hinzufügen.

Ich gehe davon aus, dass Sie initializers / devise.rb richtig konfiguriert haben, wenn Sie devise verwenden und das richtige Facebook- gem 'omniauth-facebook', '~> 4.0'Juwel installiert haben und gem 'omniauth', '~> 1.6'die erforderlichen Spalten in Ihrer Benutzertabelle wie UID, Image und Provider vorhanden sind. Das ist es.

Elias Glyptis
quelle
1

Es könnte jemandem helfen.

Ich hatte die ähnliche Fehlermeldung, aber nur in Entwicklungs- und Staging-Umgebungen, nicht in der Produktion. Die gültigen Umleitungs-URIs wurden korrekt festgelegt, sowohl für die Entwicklungs- und Staging-Subdomänen als auch für die Produktion.

Es stellte sich heraus, dass ich vergessen habe, dass wir für diese Umgebungen die Test-FB-App verwenden, die auf der FB-Entwicklerseite separat aufgeführt ist. Musste das auswählen und seine Einstellungen aktualisieren.

vargen_
quelle
0

Versuchen Sie, http://openstrategynetwork.com/sigin-facebook zu den gültigen Weiterleitungs- URLs der Client-OAuth-Einstellungen zusammen mit Ihrer eigenen Weiterleitungs-URL hinzuzufügen .

Hung Vu
quelle
0

Login Helper Ihrer Site

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

und im Facebook-Anwendungs-Dashboard (Registerkarte "Produkte": Facebook-Login )

Gültige OAuth-Umleitungs-URIs sollten auch mit xyz.com/user_by_facebook/ identisch sein.

wie bereits erwähnt, während Sie eine Anfrage aus dem Internet stellen

Zohaib
quelle
0

Wir hatten das gleiche Problem, so einen Albtraum.

  1. Stellen Sie sicher, dass Ihre App-IDs und geheimen Schlüssel korrekt sind. Wenn Sie zum Testen separate Entwicklungs-, Staging- und Produktions-Apps verwenden, sind die App-IDs und geheimen Schlüssel für jede App unterschiedlich. Dies ist oft das Problem.

  2. Stellen Sie sicher, dass die Rückruf-URL in Ihrer App-Konfigurationsdatei richtig eingestellt ist (siehe unten). Fügen Sie diese dann unter den Einstellungen für " Facebook-Anmeldung " als dieselbe URL hinzu , auf der " Gültige OAuth-Umleitungs-URIs " steht. Es sollte so aussehen (abhängig von Ihrer Umgebung):

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

  1. Stellen Sie sicher, dass Ihre App-Domain für jede Umgebung auf die richtige Domain eingestellt ist, einschließlich "www" und "no-www". Facebook verlangt außerdem, dass diese Domains mit der URL Ihrer Website oder App-Plattform übereinstimmen. Sie müssen " Plattform hinzufügen " auswählen , um dies hinzuzufügen.
kaleazy
quelle
Das Erfordernis, Redirect-URIs mit der URL der Website abzugleichen, ist für mich nicht möglich, da meine Redirect-URIs oder auf einem anderen Server definiert sind und meine Website von einem anderen Server aus bereitgestellt wird. Wo kann ich vorgehen?
Jawad
0

In meinem Fall war die URI, wie sie in FB definiert wurde, in Ordnung, aber ich verwendete Spring Security und fügte hinzu : jsessionid = 0B9A5E71DAA32A01A3CD351E6CA1FCDD zu meiner URI, was zu einer Nichtübereinstimmung führte.

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

Um das Umschreiben von URLs zu vermeiden, habe ich der Spring Security-Konfiguration auf folgende Weise disable-url-rewriting = "true" hinzugefügt :

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

Und es hat mein Problem behoben.

lm2a
quelle