Mesaj de conectare la Facebook: „URL blocat: Această redirecționare a eșuat deoarece URI-ul de redirecționare nu se află pe lista albă în setările OAuth pentru client ale aplicației.” (Programare, Facebook, Facebook Graph Api, Meteor, Oauth)

Amir Rahbaran a intrebat.
a intrebat.

Notă importantă:

Dacă vă înregistrați pentru testare, mergeți la setările profilului dvs. și la interese adăugați ștergeți profilul.

Încerc să mă loghez cu Facebook pe contul meu site-ul:

Primesc următoarea eroare:

URL blocat: Această redirecționare a eșuat deoarece URI-ul de redirecționare nu se află pe lista albă în setările OAuth pentru client ale aplicației. Asigurați-vă că Autentificare OAuth client și Web OAuth sunt activate și adăugați toate domeniile aplicației dvs. ca URI-uri de redirecționare OAuth valide.

Site-ul meu settings (de bază) în Facebook sunt:

În fila avansată, Valid OAuth redirect URIs este setat la:

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

Aplicația este public.

Mai multe setări (Advanced) aici:

Cheia și secretul aplicației sunt corecte. Folosesc Meteor și pachetele sale de conturi.

Comentarii

  • Care este ROOT_URL-ul tău? –  > Por aedm.
  • Ce url folosești pentru a redirecționa către pagina de conectare Facebook? Tot trebuie să specificați redirect_uri în cererea de autorizare. –  > Por Edward Jiang.
  • @aedm: ROOT_URL este setat la http://openstrategynetwork.com –  > Por Amir Rahbaran.
  • @EdwardJiang: unde pot face asta? Este ciudat, deoarece odată a funcționat pentru localhost. Dar nici măcar localhost nu mai funcționează. –  > Por Amir Rahbaran.
  • Mă confrunt cu această problemă, de asemenea, redirect_uri se potrivește exact cu configurația din Client OAuth Settings – vezi mai multe despre developers.facebook.com/support/bugs/232085950706415 are nevoie de ajutor oricine… mulțumesc anticipat – –  > Por jdme.
16 răspunsuri
Edward Jiang

Butonul de conectare cu Facebook de pe site-ul dvs. se leagă la:

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

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

Dacă, în schimb, schimbați link-ul în:

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

Ar trebui să funcționeze. Sau, puteți schimba link-ul Facebook în http://openstrategynetwork.com/_oauth/facebook

De asemenea, puteți adăuga http://localhost/_oauth/facebook la URI-urile de redirecționare valide.

Facebook vă cere să introduceți pe lista albă a URI-urilor de redirecționare, deoarece, în caz contrar, oamenii ar putea să se conecteze cu Facebook pentru serviciul dvs. și apoi să trimită token-ul de acces la serverul unui atacator! Și nu vreți ca acest lucru să se întâmple ;]

Comentarii

  • Ce este mai exact un URI de redirecționare OAuth? M-aș aștepta ca acesta să fie același URL ca și aplicația web rădăcină. –  > Por AlvinfromDiaspar.
  • Acest lucru pare să funcționeze. Deși Im nu sunt sigur dacă nu a fost inițial, deoarece am încercat să mă conectez cu contul sub care am aplicația creată. Am implementat această soluție și am folosit un cont diferit și a funcționat (aparent). Limbajul și informațiile privind URI-urile de redirecționare oAuth trebuie să fie clare. Informațiile sunt destul de ezoterice și aproape obscure. Termenii utilizați nu sunt nici măcar definiți sau clarificați. –  > Por abtecas.
  • mulțumesc foarte mult, mi-a rezolvat problema! chiar dacă am reușit să fac ssl să funcționeze –  > Por Sweet Chilly Philly.
  • Șmecheria este să te uiți la url-ul de redirecționare și să-l adaugi la „Valid OAuth Redirect URIs”, în cazul meu, care este signin-facebook. –  > Por Usama Saleem.
  • 1. Asigurați-vă că adăugați cu și fără www urls la dvs. URI-uri de redirecționare Auth valide –  > Por Bhavin Rana.
andymel

După cum scrie autorul întrebării

În fila avansată, Valid OAuth redirect URIs este setat la: …

și am avut aceeași problemă (scriind url-ul de redirecționare în câmpul de intrare greșit) aș dori să subliniez că

NU este

Settings -> Advanced -> Share Redirect Whitelist

ci

Facebook Login -> Settings -> Valid OAuth redirect URIs

M-ar fi scutit de 2 ore de încercări și erori.

De asemenea, ar trebui să aveți în vedere că www.example.com nu este același lucru cu example.com. Adăugați ambele formate la URL-ul de redirecționare.

Comentarii

  • Cei care votează în jos: vă rugăm să adăugați un comentariu cu privire la preocupările dvs., altfel răspunsul nu se va îmbunătăți. –  > Por andymel.
  • Iisuse, am petrecut atât de mult timp căutând în locul greșit, mulțumesc. –  > Por ricks.
  • Încercând să adaug un nou URI, primesc: New HTTP Redirect URIs are not allowed 🙁 –  > Por XCS.
  • Vă mulțumim foarte mult. Am încercat totul, dar la locul greșit. Ce înseamnă „Share Redirect Whitelist”? –  > Por Sunil Kumar.
  • im norocos că am dat peste răspunsul dvs. înainte de a petrece două ore, pe care probabil că aș fi făcut-o! Vă mulțumesc! –  > Por eBoody.
Umar Asghar

Acest lucru a funcționat pentru mine.

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

Am obținut că din browserul meu după ce faceți clic pe butonul Facebook, browserul dvs. va fi redirecționat către un link pentru integrarea cu Facebook API, deci unde veți obține această redirecționare. Pentru cazul meu linkul a fost acesta de unde am obținut 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/

Comentarii

  • Pentru aplicația mea MVC, a trebuit să adaug „/signin-facebook” la url-ul site-uluiCOPY00multumesc pentru minunatul sfat! –  > Por davaus.
  • Îmi salvezi săptămânile @Umar Asghar –  > Por kn3l.
Sumith Harshan

Asigurați-vă că „Domeniu App” și Facebook Login => URI-uri valide de redirecționare OAuth. Acolo trebuie să verificați www sau fără www. Este mai bine dacă folosiți cu www sau fără www pentru toate URL-urile din fișierele php, html, css și setările aplicației Fb.

Un alt lucru este că dacă utilizați „/” la sfârșitul URL-urilor trebuie să adăugați acel URL la setările aplicației de URI-uri de redirecționare OAuth valide.Exemplu: – https://www.example.com/index.php/ dacă utilizați această adresă în adresa de redirecționare, trebuie să o setați în setările aplicației.

Sper că acest lucru ar fi de ajutor.

Comentarii

  • în app domain adăugați atât cu www, cât și fără www –  > Por qwertzman.
  • Ce vrei să spui prin acest post prieten sunt cam confuz. –  > Por TheBAST.
Hooman Bahreini

În cazul meu, a trebuit doar să mă asigur că am uralele mele atât cu cât și fără www pentru Domeniul aplicației și URL-uri de redirecționare:

În cazul meu, a trebuit să folosesc: signin-facebook după url-ul site-ului meu, pentru url-ul de redirecționare.

Comentarii

  • Domeniile de aplicații sunt într-adevăr necesare? Când am testat la nivel local, a funcționat fără să seteze App Domains –  > Por Darius.V.
  • Folosiți oAuth, și redirecționare? –  > Por Hooman Bahreini.
  • da. Folosesc symfony bundle github.com/knpuniversity/oauth2-client-bundle –  > Por Darius.V.
NIKHIL C M

Pentru aplicația mea Node,

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

a pus callback Url relativ

URI-urile mele de redirecționare OAuth după cum urmează

Asigurați-vă că „/” la sfârșitul URI-ului de redirecționare Facebook auth.

Aceste configurări au funcționat pentru mine.

Elias Glyptis

Ok În primul rând, acesta este un mesaj de eroare foarte clar. Doar uitați-vă la acest lucru mulți dezvoltatori ratează acest lucru, inclusiv eu însumi. Aruncați o privire la captura de ecran de aici vă rog.

Sub Products > Facebook Login > Settings

sau pur și simplu mergeți la acest url aici (Înlocuiți YOUR_APP_ID cu ID-ul aplicației dvs. lol):

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

Dacă lucrați la localhost:3000 Asigurați-vă că aveți https://localhost:3000/auth/facebook/callback

Desigur, nu trebuie să aveți statusul live (Comutator verde în colțul din dreapta sus), dar în cazul meu, eu implementez acum pe heroku și voi înlocui în curând localhost:3000 cu https://myapp.herokuapp.com/auth/facebook/callback

Bineînțeles că voi actualiza url-urile din Settings/Basic & Settings/Advanced și voi adăuga, de asemenea, un url de politică de confidențialitate în secțiunea de bază.

Presupun că ați configurat corect initializers/devise.rb dacă folosiți devise și aveți facebook-ul corespunzător gem 'omniauth-facebook', '~> 4.0' gem instalat și gem 'omniauth', '~> 1.6', și că aveți coloanele necesare în tabelul dvs. de utilizatori, cum ar fi uid, image și provider. Asta este tot.

girlgeek

Schimbarea din hauth.done=Facebook în hauth_done=Facebook în URI-urile de redirecționare OAuth valide a rezolvat problema.

vargen_

S-ar putea să ajute pe cineva.

Am avut un mesaj de eroare similar, dar numai în mediile dev și staging, nu și în producție. URI-urile de redirecționare valide erau setate corect, atât pentru subdomeniile dev și staging, cât și pentru producție.

S-a dovedit că am uitat că pentru aceste medii folosim aplicația FB de testare, care este una separată în pagina de dezvoltator FB. A trebuit să o selectez și să actualizez setările acesteia.

Hung Vu

Încercați să adăugați http://openstrategynetwork.com/sigin-facebook la Client OAuth Settings valid redirect URL împreună cu propriul URL de redirecționare.

zohaib

Login Helper al site-ului dvs.

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

și în tabloul de bord al aplicației facebook (Sub fila produse : Facebook Login )

URI-uri de redirecționare OAuth valide ar trebui să fie, de asemenea, aceleași cu xyz.com/user_by_facebook/

așa cum s-a menționat mai devreme în timp ce se face o cerere de pe web

kaleazy

Am avut aceeași problemă, un astfel de coșmar.

  1. Asigurați-vă că ID-urile de aplicație și cheile secrete sunt corecte. Dacă folosiți aplicații separate de dezvoltare, staging și producție pentru testare, ID-urile de aplicație și Cheile secrete sunt toate diferite pentru fiecare aplicație. Aceasta este adesea problema.

  2. Asigurați-vă că ați setat corect URL-ul de callback în fișierul de configurare a aplicației (a se vedea mai jos). Și apoi adăugați acest lucru ca fiind același URL sub „Facebook Login„, unde scrie „URI-uri de redirecționare OAuth valide„. Ar trebui să arate astfel (în funcție de mediul dvs.):

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

  1. Asigurați-vă că domeniul aplicației dvs. este setat la domeniul corect pentru fiecare mediu, incluzând atât „www”, cât și „no-www”. De asemenea, Facebook solicită ca aceste domenii să corespundă cu URL-ul site-ului dvs. web sau al platformei aplicației. Va trebui să selectați „Add Platform” (Adăugare platformă)” pentru a adăuga acest lucru.

Comentarii

  • cerința de potrivire a URI-urilor de redirecționare cu URL-ul site-ului web nu este posibilă pentru mine, deoarece URI-urile mele de redirecționare sau definite pe un alt server, iar site-ul meu web este servit de pe un server diferit, cum pot proceda? –  > Por Jawad.
jausel

În cazul meu, integram autentificarea Facebook într-un tutorial de aplicație Rails. Am adăugat http://localhost:3000/adsf la URI-urile mele de redirecționare OAuth valide, dar aplicația Rails deschidea url-ul ca fiind http://0.0.0.0:3000 și, prin urmare, ar fi încercat să redirecționeze către http://0.0.0.0:3000/asdf. După ce am adăugat http://0.0.0.0:3000/asdf la URI-urile valide de redirecționare OAuth Redirect, sau navigând către http://localhost:3000/asdf, a funcționat așa cum era de așteptat.

lm2a

În cazul meu, URI, așa cum a fost definit pe FB, era în regulă, dar foloseam Spring Security și se adăuga ;jsessionid=0B9A5E71DAA32A01A3CD351E6CA1FCDD la URI-ul meu, ceea ce a cauzat neconcordanța.

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

Pentru a evita rescrierea URL-ului, am adăugat disable-url-rewriting=”true” la configurația Spring Security, în felul următor:

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

Și mi-a rezolvat problema.

Chintan Hingrajia
Nate Hammond

Puneți url-ul dvs. aiciFacebook Login -> Settings -> Valid OAuth redirect URIs ȘI veți primi, de asemenea, această eroare dacă APP ID-ul dvs. este greșit