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


121

Ważna uwaga:

Jeśli zarejestrujesz się na testy, przejdź do ustawień swojego profilu i do swoich zainteresowań dodaj usuń profil .

Próbuję zalogować się przez Facebooka do mojej strony internetowej :

Otrzymuję następujący błąd:

Adres URL zablokowany: to przekierowanie nie powiodło się, ponieważ identyfikator URI przekierowania nie znajduje się na białej liście w ustawieniach OAuth klienta aplikacji. Upewnij się, że logowanie klienta i Web OAuth jest włączone i dodaj wszystkie domeny aplikacji jako prawidłowe identyfikatory URI przekierowania OAuth.

Moje settings(podstawy) na Facebooku to:

Na karcie zaawansowane Valid OAuth redirect URIsjest ustawione na:

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

Aplikacja jest public.

Więcej ustawień (Zaawansowane) tutaj: wprowadź opis obrazu tutaj

Klucz i tajny klucz aplikacji są poprawne. Używam Meteor i jego pakietów kont.


Jaki jest Twój ROOT_URL?
— aedm

Jakiego adresu URL używasz do przekierowania na stronę logowania na Facebooku? Nadal musisz określić redirect_uri w żądaniu autoryzacji.
— Edward Jiang

@aedm: ROOT_URL jest ustawiony nahttp://openstrategynetwork.com
— Amir Rahbaran

@EdwardJiang: gdzie mogę to zrobić? To dziwne, ponieważ kiedyś działało dla localhost. Ale nawet localhost już nie działa.
— Amir Rahbaran

Ja też mam ten problem, redirect_uri pasuje dokładnie do konfiguracji w ustawieniach klienta OAuth - zobacz więcej na developers.facebook.com/support/bugs/232085950706415 potrzebujesz pomocy każdemu .. z góry
— dziękuję

Odpowiedzi:


80

Logowanie za pomocą przycisku Facebook w Twojej witrynie prowadzi 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=

Ogłoszenie: redirect_uri=http://openstrategynetwork.com/_oauth/facebook

Jeśli zamiast tego zmienisz link na:

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

Powinno działać. Możesz też zmienić łącze Facebooka nahttp://openstrategynetwork.com/_oauth/facebook

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

Facebook wymaga, abyś umieścił na białej liście przekierowujące identyfikatory URI, ponieważ w przeciwnym razie ludzie mogliby zalogować się za pomocą Facebooka do Twojej usługi, a następnie wysłać swój token dostępu do serwera atakującego! I nie chcesz, żeby tak się stało;]


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

1
To wydaje się działać. Chociaż nie jestem pewien, czy nie było to pierwotnie, ponieważ próbowałem zalogować się na konto, na którym utworzyłem aplikację. Wdrożyłem to rozwiązanie i użyłem innego konta i zadziałało (pozornie). Język i informacje o identyfikatorach URI przekierowania protokołu OAuth muszą być jasne. Informacje są dość ezoteryczne i prawie tajemnicze. Użyte terminy nie są nawet zdefiniowane ani wyjaśnione.
— abtecas

dziękuję bardzo rozwiązałem mój problem! mimo że SSL działa
— Sweet Chilly Philly

Sztuczka polega na tym, aby spojrzeć na adres URL przekierowania i dodać go do „Prawidłowych identyfikatorów URI przekierowania OAuth” w moim przypadku to jest login-facebook.
— Usama Saleem

1. upewnij się, że dodałeś adresy URL www i bez nich do identyfikatorów URI przekierowania
— Bhavin Rana,

79

Jak pisze pytający

Na karcie Zaawansowane prawidłowe identyfikatory URI przekierowania OAuth jest ustawione na: ...

i miałem ten sam problem (wpisanie adresu URL przekierowania w niewłaściwe pole wejściowe), chciałbym to podkreślić

To nie jest

Settings -> Advanced -> Share Redirect Whitelist

ale

Facebook Login -> Settings -> Valid OAuth redirect URIs

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

Należy również pamiętać, że www.example.comto nie to samo co example.com. Dodaj oba formaty do adresu URL przekierowania.


11
Głosujący w dół: dodaj komentarz dotyczący swoich obaw, w przeciwnym razie odpowiedź nie będzie lepsza.
— andymel

6
Jezu, spędziłem tyle czasu szukając w złym miejscu, dziękuję.
— ricks

Próbuję dodać nowy identyfikator URI: New HTTP Redirect URIs are not allowed:(
— XCS,

Dzięki wielkie. Próbowałem wszystkiego, ale w złym miejscu. Co oznacza „Udostępnij białą listę przekierowań”?
— Sunil Kumar

20

To zadziałało dla mnie.

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

Dostałem to z mojej przeglądarki po kliknięciu przycisku Facebooka Twoja przeglądarka zostanie przekierowana do linku do integracji z Facebook API, więc gdzie dostaniesz to przekierowanie. W moim przypadku link był ten, z którego otrzymałem 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/

wprowadź opis obrazu tutaj wprowadź opis obrazu tutaj


W przypadku mojej aplikacji MVC musiałem dodać „/ signin-facebook” do adresu URL witryny… dzięki za wspaniałą wskazówkę!
— davaus

Oszczędzasz moje tygodnie @Umar Asghar
— kn3l

11

Upewnij się, że „ Domena aplikacji ” i logowanie na Facebooku => Prawidłowe identyfikatory URI przekierowania OAuth . Tam musisz sprawdzić www lub bez www . Lepiej, jeśli używasz z www lub bez dla wszystkich adresów URL w plikach php, html, css i ustawieniach aplikacji Fb.

Inną rzeczą jest to, że jeśli używasz końcówki „/” adresów URL, musisz dodać ten adres URL do ustawień aplikacji z prawidłowymi identyfikatorami URI przekierowania OAuth . Przykład: - https://www.example.com/index.php/ jeśli ten adres URL, jeśli używasz adresu URL przekierowania, musisz ustawić go w ustawieniach aplikacji.

Mam nadzieję, że to pomoże.


w domenie aplikacji dodajesz zarówno z, jak i bez www
— qwertzman

Co masz na myśli mówiąc o tym przyjacielu, jestem trochę zdezorientowany.
— TheBAST

6

W przypadku mojej aplikacji węzła

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

wstaw względny adres URL wywołania zwrotnego

Moje identyfikatory URI przekierowania OAuth w następujący sposób

wprowadź opis obrazu tutaj

Upewnij się, że znak „/” na końcu identyfikatora URI przekierowania uwierzytelniania Facebooka

Te konfiguracje działały dla mnie.


6

W moim przypadku musiałem tylko upewnić się, że mam moje adresy URL z i bez www dla domeny aplikacji i adresów URL przekierowań :

wprowadź opis obrazu tutaj

W moim przypadku musiałem użyć: signin-facebookpo adresie mojej witryny, dla adresu przekierowania.


Czy domeny aplikacji są naprawdę potrzebne? Kiedy testowałem lokalnie, działało bez ustawiania domen aplikacji
— Darius.V,

Czy używasz protokołu OAuth i przekierowania?
— Hooman Bahreini


3

Zmiana z hauth.done = Facebook na hauth_done = Facebook w prawidłowych identyfikatorach URI przekierowania OAuth naprawiła to za mnie.


1

Ok Przede wszystkim jest to bardzo wyraźny komunikat o błędzie. Wystarczy spojrzeć, jak wielu deweloperów za tym tęskni, w tym ja. Proszę spojrzeć na zrzut ekranu.

wprowadź opis obrazu tutaj

W obszarze Produkty> Logowanie na Facebooku> Ustawienia

lub po prostu przejdź do tego adresu URL tutaj (zamień YOUR_APP_ID na identyfikator aplikacji lol):

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

Jeśli pracujesz, localhost:3000upewnij się, że maszhttps://localhost:3000/auth/facebook/callback

Oczywiście nie musisz mieć statusu na żywo (zielony przełącznik w prawym górnym rogu), ale w moim przypadku wdrażam teraz do heroku i wkrótce zastąpię localhost:3000gohttps://myapp.herokuapp.com/auth/facebook/callback

Oczywiście zaktualizuję adresy URL w Ustawieniach / Podstawowe i ustawienia / Zaawansowane, a także dodam adres URL polityki prywatności w sekcji podstawowej.

Zakładam, że masz poprawnie skonfigurowane inicjatory / devise.rb, jeśli używasz devise i masz gem 'omniauth-facebook', '~> 4.0'zainstalowany odpowiedni klejnot na Facebooku gem 'omniauth', '~> 1.6'i masz niezbędne kolumny w tabeli użytkowników, takie jak uid, obraz i dostawca. Otóż ​​to.


1

To może komuś pomóc.

Miałem podobny komunikat o błędzie, ale tylko w środowiskach deweloperskich i przejściowych, a nie w środowisku produkcyjnym. Prawidłowe identyfikatory URI przekierowania zostały poprawnie ustawione dla subdomen deweloperskich i pomostowych, a także dla produkcji.

Okazało się, że zapomniałem, że dla tych środowisk używamy testowej aplikacji FB, która jest osobną aplikacją na stronie programisty FB. Musiałem to wybrać i zaktualizować ustawienia.



0

Pomocnik logowania w Twojej witrynie

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

oraz w panelu aplikacji na Facebooku (w zakładce Produkty: Logowanie do Facebooka )

Prawidłowe identyfikatory URI przekierowania OAuth również powinny być takie same dla xyz.com/user_by_facebook/

jak wspomniano wcześniej podczas wysyłania żądania z sieci


0

Mieliśmy ten sam problem, taki koszmar.

  1. Upewnij się, że identyfikatory aplikacji i tajne klucze są poprawne. Jeśli do testowania używasz oddzielnych aplikacji deweloperskich, przejściowych i produkcyjnych, identyfikatory aplikacji i tajne klucze są różne dla każdej aplikacji. To jest często problem.

  2. Upewnij się, że adres URL wywołania zwrotnego jest prawidłowo ustawiony w pliku konfiguracyjnym aplikacji (patrz poniżej). Następnie dodaj to jako ten sam adres URL w ustawieniach „ Facebook Login ”, gdzie jest napisane „ Valid OAuth redirect URIs ”. Powinien wyglądać tak (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 domena aplikacji jest ustawiona na prawidłową domenę dla każdego środowiska, w tym „www” i „no-www”. Facebook wymaga również, aby te domeny były zgodne z adresem URL Twojej witryny lub platformy aplikacji. Aby to dodać, musisz wybrać opcję „ Dodaj platformę ”.

wymóg dopasowania identyfikatorów URI przekierowania do adresu URL strony internetowej nie jest dla mnie możliwy, ponieważ moje identyfikatory URI przekierowania lub zdefiniowane na innym serwerze, a moja witryna jest obsługiwana z innego serwera, jak mogę się do tego zabrać?
— Jawad,

0

W moim przypadku integrowałem logowanie Facebooka w samouczku aplikacji Rails. Dodałem http: // localhost: 3000 / adsf do moich prawidłowych identyfikatorów URI przekierowania OAuth, ale aplikacja Rails otworzyłaby adres URL jako http://0.0.0.0:3000 i dlatego spróbowała przekierować do http: //0.0. 0,0: 3000 / asdf . Po dodaniu adresu http://0.0.0.0:3000/asdf do prawidłowych identyfikatorów URI przekierowania OAuth lub przejściu do adresu http: // localhost: 3000 / asdf wszystko działało zgodnie z oczekiwaniami.


0

W moim przypadku URI, tak jak zostało to zdefiniowane na FB, było w porządku, ale używałem Spring Security i dodawałem używałem dodawałem; jsessionid = 0B9A5E71DAA32A01A3CD351E6CA1FCDD do mojego URI, więc spowodowało to niedopasowanie.

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

Aby uniknąć przepisywania adresu URL, dodałem disable-url-rewriting = "true" do konfiguracji Spring Security, w ten sposób:

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

I to rozwiązało mój problem.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.