Messaggio di accesso a Facebook: "URL bloccato: questo reindirizzamento non è riuscito perché l'URI di reindirizzamento non è autorizzato nelle impostazioni OAuth del client dell'app".


121

Avviso IMPORTANTE:

Se ti registri per il test, vai alle impostazioni del tuo profilo e ai tuoi interessi aggiungi elimina profilo .

Sto provando ad accedere con Facebook al mio sito web :

Ottengo il seguente errore:

URL bloccato: questo reindirizzamento non è riuscito perché l'URI di reindirizzamento non è autorizzato nelle impostazioni OAuth del client dell'app. Assicurati che il client e l'accesso Web OAuth siano attivi e aggiungi tutti i domini delle app come URI di reindirizzamento OAuth validi.

Le mie settings(Nozioni di base) su Facebook sono:

Nella scheda Avanzate, Valid OAuth redirect URIsè impostato su:

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

L'app è public.

Altre impostazioni (avanzate) qui: inserisci qui la descrizione dell'immagine

La chiave e il segreto dell'app sono corretti. Sto usando Meteor e i suoi pacchetti di account.


Qual è il tuo ROOT_URL?
aedm

Quale URL stai utilizzando per reindirizzare alla pagina di accesso di Facebook? È ancora necessario specificare redirect_uri nella richiesta di autorizzazione.
Edward Jiang

@aedm: ROOT_URL è impostato suhttp://openstrategynetwork.com
Amir Rahbaran

@EdwardJiang: dove posso farlo? È strano perché una volta funzionava per localhost. Ma anche localhost non funziona più.
Amir Rahbaran

Sto riscontrando anche questo problema, redirect_uri corrisponde esattamente alla configurazione nelle impostazioni OAuth del client - vedi di più su developers.facebook.com/support/bugs/232085950706415 bisogno di aiuto chiunque .. grazie in anticipo
jdme

Risposte:


80

Il login con il pulsante Facebook sul tuo sito si collega a:

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

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

Se invece cambi il link in:

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

Dovrebbe funzionare. Oppure puoi cambiare il link di Facebook inhttp://openstrategynetwork.com/_oauth/facebook

È inoltre possibile aggiungere http://localhost/_oauth/facebookURI di reindirizzamento validi.

Facebook richiede che tu inserisca nella whitelist gli URI di reindirizzamento, poiché altrimenti le persone potrebbero accedere con Facebook per il tuo servizio e quindi inviare il loro token di accesso al server di un utente malintenzionato! E non vuoi che ciò accada;]


4
Che cos'è esattamente un URI di reindirizzamento OAuth? Mi aspetto che questo sia lo stesso URL dell'app Web principale.
AlvinfromDiaspar

1
Sembra funzionare. Anche se non sono sicuro che non fosse originariamente perché stavo cercando di accedere con l'account con cui ho creato l'app. Ha implementato questa soluzione e ha utilizzato un account diverso e ha funzionato (apparentemente). La lingua e le informazioni sugli URI di reindirizzamento oAuth devono essere chiare. Le informazioni sono esoteriche e quasi arcane. I termini utilizzati non sono nemmeno definiti o chiariti.
abtecas

grazie mille risolto il mio problema! anche se ho ssl funzionante
Sweet Chilly Philly

Il trucco è guardare l'URL di reindirizzamento e aggiungerlo agli "URI di reindirizzamento OAuth validi" nel mio caso è signin-facebook.
Usama Saleem

1.Assicurati di aggiungere con e senza URL www ai tuoi URI di reindirizzamento di autenticazione valida
Bhavin Rana

79

Come scrive l'interrogante

Nella scheda Avanzate, URI di reindirizzamento OAuth validi è impostato su: ...

e ho avuto lo stesso problema (scrivendo l'URL di reindirizzamento nel campo di input sbagliato) vorrei evidenziarlo

Non è

Settings -> Advanced -> Share Redirect Whitelist

ma

Facebook Login -> Settings -> Valid OAuth redirect URIs

Mi avrebbe risparmiato 2 ore di tentativi ed errori.

Dovresti anche tenere a mente che www.example.comnon è la stessa cosa di example.com. Aggiungi entrambi i formati all'URL di reindirizzamento.


11
Down-voters: aggiungi un commento sulle tue preoccupazioni, altrimenti la risposta non migliorerà.
andymel

6
Gesù, ho passato così tanto tempo a cercare nel posto sbagliato, grazie.
risciò il

Provando ad aggiungere un nuovo URI ottengo: New HTTP Redirect URIs are not allowed:(
XCS

Grazie mille. Ho provato di tutto, ma nel posto sbagliato. Che cosa significa "Share Redirect Whitelist"?
Sunil Kumar

20

Questo ha funzionato per me.

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

L'ho ottenuto dal mio browser dopo aver fatto clic sul pulsante Facebook, il tuo browser verrà reindirizzato a un collegamento per l'integrazione con l'API di Facebook, quindi dove otterrai quel reindirizzamento. Per il mio caso il collegamento era questo da dove ho ottenuto il 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/

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine


Per la mia applicazione MVC, ho dovuto aggiungere "/ signin-facebook" all'URL del sito .... grazie per il meraviglioso suggerimento!
davaus

Mi risparmi le settimane @Umar Asghar
kn3l

11

Assicurati che " App Domain " e Facebook Login => URI di reindirizzamento OAuth validi . Lì devi controllare www o senza www . È meglio se usi con www o senza per tutti gli URL in php, html, file css e impostazioni dell'app Fb.

Un'altra cosa è che se stai utilizzando la fine "/" degli URL, devi aggiungere quell'URL alle impostazioni dell'app degli URI di reindirizzamento OAuth validi . Esempio: - https://www.example.com/index.php/ se questo URL se stai usando nell'URL di reindirizzamento devi impostarlo sulle impostazioni dell'app.

Spero che questo possa essere d'aiuto.


nel dominio dell'app si aggiungono sia con che senza www
qwertzman

Cosa intendi con questo post amico sono un po 'confuso.
TheBAST

6

Per la mia applicazione Node,

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

put callback Url relative

Il mio OAuth reindirizza gli URI come segue

inserisci qui la descrizione dell'immagine

Assicurati "/" alla fine dell'URI di reindirizzamento dell'autenticazione di Facebook

Queste configurazioni hanno funzionato per me.


6

Nel mio caso, dovevo solo assicurarmi di avere i miei URL con e senza www per il dominio dell'applicazione e gli URL di reindirizzamento :

inserisci qui la descrizione dell'immagine

Nel mio caso, ho dovuto usare: signin-facebookdopo l'URL del mio sito, per l'URL di reindirizzamento.


I domini delle app sono davvero necessari? Quando ho provato a livello locale, ha funzionato senza impostare App Domains
Darius.V

Usi oAuth e il reindirizzamento?
Hooman Bahreini


3

Il passaggio da hauth.done = Facebook a hauth_done = Facebook negli URI di reindirizzamento OAuth validi ha risolto il problema per me.


1

Ok Prima di tutto questo è un messaggio di errore molto chiaro. Basta guardare a questo a molti sviluppatori, compreso me stesso. Dai un'occhiata alla schermata qui per favore.

inserisci qui la descrizione dell'immagine

In Prodotti> Accesso a Facebook> Impostazioni

o vai a questo URL qui (sostituisci YOUR_APP_ID con il tuo id app lol):

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

Se stai lavorando, localhost:3000assicurati di averlo fattohttps://localhost:3000/auth/facebook/callback

Ovviamente non è necessario che lo stato sia attivo (interruttore verde nell'angolo in alto a destra) ma nel mio caso, sto distribuendo su heroku ora e presto lo sostituirò localhost:3000conhttps://myapp.herokuapp.com/auth/facebook/callback

Ovviamente aggiornerò gli URL in Impostazioni / Base e Impostazioni / Avanzate e aggiungerò anche un URL della politica sulla privacy nella sezione di base.

Presumo che tu abbia configurato correttamente gli inizializzatori / devise.rb se stai usando devise e hai la gem 'omniauth-facebook', '~> 4.0'gemma Facebook corretta installata e gem 'omniauth', '~> 1.6', e hai le colonne necessarie nella tabella degli utenti come uid, immagine e provider. Questo è tutto.


1

Potrebbe aiutare qualcuno.

Ho ricevuto il messaggio di errore simile, ma solo in ambienti di sviluppo e gestione temporanea, non in produzione. Gli URI di reindirizzamento validi sono stati impostati correttamente, per i sottodomini di sviluppo e di staging, nonché per la produzione.

Si è scoperto che dimenticavo che per quegli ambienti utilizziamo l'app FB di test, che è separata nella pagina degli sviluppatori FB. Ho dovuto selezionarlo e aggiornare le sue impostazioni.



0

Login Helper del tuo sito

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

e nella dashboard dell'applicazione Facebook (nella scheda prodotti: Accesso Facebook )

Anche gli URI di reindirizzamento OAuth validi dovrebbero essere gli stessi per xyz.com/user_by_facebook/

come accennato in precedenza durante la richiesta dal web


0

Abbiamo avuto lo stesso problema, un tale incubo.

  1. Assicurati che gli ID app e le chiavi segrete siano corretti. Se utilizzi app di sviluppo, gestione temporanea e produzione separate per i test, gli ID app e le chiavi segrete sono tutti diversi per ciascuna app. Questo è spesso il problema.

  2. Assicurati di avere l'URL di richiamata impostato correttamente nel file di configurazione dell'app (vedi sotto). Quindi aggiungilo come stesso URL nelle impostazioni " Accesso Facebook " dove dice " URI di reindirizzamento OAuth validi ". Dovrebbe assomigliare a questo (a seconda del tuo ambiente):

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

  1. Assicurati che il dominio della tua app sia impostato sul dominio corretto per ogni ambiente, inclusi "www" e "no-www". Facebook richiede anche che questi domini corrispondano all'URL del tuo sito web o della piattaforma dell'app. Dovrai selezionare " Aggiungi piattaforma " per aggiungerlo.

il requisito di abbinare gli URI di reindirizzamento con l'URL del sito Web non è possibile per me perché i miei URI di reindirizzamento o definiti su un altro server e il mio sito Web è servito da un server diverso, posso farlo?
Jawad

0

Nel mio caso, stavo integrando il login di Facebook all'interno di un tutorial dell'app Rails. Avevo aggiunto http: // localhost: 3000 / adsf ai miei URI di reindirizzamento OAuth validi, ma l'app Rails avrebbe aperto l'URL come http://0.0.0.0:3000 e avrebbe quindi provato a reindirizzare a http: //0.0. 0.0: 3000 / asdf . Dopo aver aggiunto http://0.0.0.0:3000/asdf agli URI di reindirizzamento OAuth validi o essere passati a http: // localhost: 3000 / asdf , ha funzionato come previsto.


0

Nel mio caso l'URI, come è stato definito su FB, andava bene, ma stavo usando Spring Security e aggiungeva ; jsessionid = 0B9A5E71DAA32A01A3CD351E6CA1FCDD al mio URI, quindi ha causato la mancata corrispondenza.

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

Per evitare la riscrittura dell'URL ho aggiunto disable-url-rewriting = "true" alla configurazione di Spring Security, in questo modo:

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

E ha risolto il mio problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.