2016-05-03 25 views
55

Ważna informacja:Komunikat logowania na Facebooka: "URL zablokowany: to przekierowanie nie powiodło się, ponieważ identyfikator przekierowania URI nie znajduje się na białej liście w ustawieniach OAuth klienta aplikacji."

Jeśli zarejestrujesz się do testów, przejdź do ustawień profilu i do interesów dodać usunąć profil.

próby logowania z Facebook do mojego website:

pojawia się następujący błąd:

URL Blocked: This redirect failed because the redirect URI is not whitelisted in the app’s Client OAuth Settings. Make sure Client and Web OAuth Login are on and add all your app domains as Valid OAuth Redirect URIs.

Moja settings (Podstawy) na Facebooku to:

W zakładce Zaawansowane Valid OAuth redirect URIs jest ustawiony na:

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

App jest public.

Więcej ustawień (zaawansowane) tutaj: enter image description here

klucz App i tajne są poprawne. Używam pakietów Meteor i jego kont.

+0

Jaki jest Twój ROOT_URL? – aedm

+0

Jaki URL używasz do przekierowania na stronę logowania na Facebooku? Nadal musisz określić parametr redirect_uri w żądaniu autoryzacji. –

+0

@aedm: ROOT_URL jest ustawione na '' 'http: // openstrategynetwork.com''' –

Odpowiedz

33

Identyfikator logowania z przyciskiem Facebooka na swojej stronie jest link do:

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

Wskazówka: redirect_uri=http://openstrategynetwork.com/_oauth/facebook

Jeśli zamiast zmienić link:

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

It powinno działać. Możesz też zmienić link do Facebooka na http://openstrategynetwork.com/_oauth/facebook

Możesz również dodać http://localhost/_oauth/facebook do prawidłowych identyfikatorów URI przekierowania.

Facebook wymaga umieszczenia białej listy identyfikatorów URI na białej liście, ponieważ w przeciwnym razie użytkownicy mogą logować się za pomocą Facebooka, a następnie przesłać swój token dostępu do serwera osoby atakującej! I nie chcesz, aby tak się stało;]

+0

Zmieniłem to na facebooku. Prace. Wow, dziękuję bardzo :) –

+2

Czym dokładnie jest URI przekierowania OAuth? Spodziewam się, że będzie to ten sam adres URL, co główna aplikacja internetowa. – AlvinfromDiaspar

+0

pracował jak urok. Wielkie dzięki. – learner

6

Upewnij "App Domain" i Facebook Login => Ważny OAuth przekierować URI. Tam musisz sprawdzić www lub bez www. Lepiej, jeśli używasz z www lub bez dla wszystkich adresów URL w php, html, plikach css i ustawieniach aplikacji Fb.

Jeśli używasz końcówek "/", musisz dodać adres URL do ustawień aplikacji: Prawidłowe identyfikatory URI przekierowania OAuth. Przykład: - https://www.example.com/index.php/ jeśli ten adres URL, jeśli używasz w przekierowującym adresie URL, musisz ustawić to w ustawieniach aplikacji.

Mam nadzieję, że to pomoże.

+0

w domenie app, do której dodajesz zarówno z, jak i bez, www – qwertzman

2

Zmiana z hauth.done = Facebook do hauth_done = Facebook w obowiązującym OAuth przekierowania URI stałe to dla mnie.

0

Zaloguj Helper witryny

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

w desce rozdzielczej i aplikacji Facebook (Under zakładce produkty: Facebook login)

Ważny OAuth przekierować URI powinny być również samo xyz.com/user_by_facebook/

jak wspomniano wcześniej, podczas dokonywania żądania z sieci

3

dla mojej aplikacji węzła

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

put zwrotna Url względna

Moja OAuth przekierować URI następująco

enter image description here

Upewnij Jasne "/" w koniec Facebook auth przekierować URI

Te konfiguracje pracował dla mnie.

0

Mieliśmy ten sam problem, taki koszmar.

  1. Upewnij się, że Twoje identyfikatory aplikacji i tajne klucze są poprawne. Jeśli korzystasz z oddzielnych aplikacji do programowania, testowania i produkcji do testowania, identyfikatory aplikacji i sekretne klucze są różne dla każdej aplikacji. Często jest to problem.

  2. Upewnij się, że URL wywołania zwrotnego jest ustawiony poprawnie w pliku konfiguracyjnym aplikacji (patrz poniżej). A następnie dodaj ten sam adres URL w "" Login Facebook "ustawień, w których jest napisane" Prawidłowe identyfikatory URI przekierowania OAuth ". Powinien on wyglądać następująco (w zależności od środowiska):

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

  1. Upewnij się, że aplikacja domena jest rozregulowany domeny dla każdego środowisko, w tym "www" i "bez-www".Facebook wymaga również, aby te domeny pasowały do ​​adresu URL witryny lub platformy aplikacji. Aby dodać tę opcję, musisz wybrać "Dodaj platformę".
+0

, wymóg dopasowania identyfikatorów przekierowania z adresem URL witryny nie jest dla mnie możliwy, ponieważ moje przekierowania URI lub zdefiniowane na innym serwerze i mojej stronie są podawane z innego serwera, hwo mogę to? – Jawad

5

To zadziałało dla mnie.

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

mam, że z mojej przeglądarce po kliknięciu przycisku Facebook ty przeglądarka zostanie przekierowana do łącza do integracji z Facebook API, więc gdzie dostaniesz to przekierowanie. W moim przypadku link był tym, skąd otrzymałem adres 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/

enter image description here enter image description here

0

W moim przypadku było zintegrowanie Facebook login w Rails app tutoriala. Dodałem http://localhost:3000/adsf do moich prawidłowych identyfikatorów URI przekierowania OAuth, ale aplikacja Railsowa otworzy URL jako http://0.0.0.0:3000 i dlatego spróbuje przekierować do http://0.0.0.0:3000/asdf. Po dodaniu http://0.0.0.0:3000/asdf do prawidłowych identyfikatorów URI przekierowania OAuth lub nawigacji do http://localhost:3000/asdf zadziałało zgodnie z oczekiwaniami.

2

Jako pytający pisze

In the advanced tab, Valid OAuth redirect URIs is set to: ...

i miałem ten sam problem (pisanie przekierowanie do wejścia dziedzinie złym) Chciałbym podkreślić, że

To NIE jest

Settings -> Advanced -> Share Redirect Whitelist 

ale

Facebook Login -> Settings -> Valid OAuth redirect URIs 

Zaoszczędziłoby mi to 2 godziny prób i błędów.

+0

Down-voters: proszę dodać komentarz na temat swoich obaw, w przeciwnym razie odpowiedź nie będzie lepsza. – andymel