Facebook OAuth "Il dominio di questo URL non è incluso nel dominio dell'app"


248

Vorrei innanzitutto iniziare dicendo che ho cercato una risposta a questa domanda per un bel po 'di tempo ...

Sto cercando di configurare Facebook OAuth in modo che funzioni con la mia applicazione sviluppata localmente sul mio computer. Tutto funzionava perfettamente con l'autorizzazione di Facebook FINO A quando non sono passato dall'uso localhosta un altro nome di dominio (ancora locale sul mio computer). Ora sto ricevendo il seguente errore.

Impossibile caricare l'URL: il dominio di questo URL non è incluso nei domini dell'app. Per poter caricare questo URL, aggiungi tutti i domini e i sottodomini della tua app nel campo Domini app nelle impostazioni della tua app.

Il mio file hosts contiene 127.0.0.1 photovote.dev (funziona perfettamente)

Il mio reindirizzamento nella mia app (utilizzando Socialite) è http://photovote.dev/auth/facebook/callback

Nelle mie impostazioni dell'app di Facebook ...

  • il mio dominio app è photovote.dev
  • l'URL del mio sito è http://photovote.dev/
  • il mio URI di reindirizzamento OAuth valido è http://photovote.dev/auth/facebook/callback

L'URL al momento del messaggio di errore è ..

https://www.facebook.com/v2.5/dialog/oauth?client_id=XXXXXXXXXXXXXXX&redirect_uri=http%3A%2F%2Fphotovote.dev%2Fauth%2Ffacebook%2Fcallback&scope=email&response_type=code&state=0ztcKhmWwFLtj72TWE8uOKTcf65JmePtG95MZLDD

Sono in perdita di quale sia il problema ...

Schermata 1
Immagine dello schermo

Schermata 2 inserisci qui la descrizione dell'immagine


3
Ciao dangel, potresti voler offuscare il tuo FB client_id da questo post
a.benain

@angel come hai risolto questo problema ?? sto riscontrando lo stesso problema, ma non riesco a risolverlo.
Ghimire,

@Ghimire, nella mia situazione, avevo cambiato l'URL e non ho aggiornato il mio client \ secret. Dalla lettura delle soluzioni seguenti, sembra che in realtà potrebbero esserci diverse ragioni che danno lo stesso errore.
dangel

Risposte:


81

Questo di solito accade se hai inserito i dettagli sbagliati quando hai creato l'app su Facebook. O hai cambiato l'URL di un'app esistente?

Puoi ricontrollare le impostazioni della tua APP in questa pagina?

https://developers.facebook.com/apps

  1. Seleziona l'app corretta e fai clic sul pulsante Modifica;

  2. Verifica che URL e percorsi siano stati inseriti correttamente e che puntino al sito in cui hai installato il plugin Ultimate Facebook.


3
Ho appena visto quello che hai detto su "hai cambiato l'URL di
un'app

Ciao, sto anche cercando di implementare fb oauth nella mia app. Ho fornito tutti i dettagli sull'app fb. Tuttavia, verrà visualizzato il seguente errore durante il reindirizzamento della richiamata. InternalOAuthError: impossibile ottenere il token di accesso in Strategy.OAuth2Strategy._createOAuthError (D: \ node_tutorials \ fb \ node_modules \ passport-oauth2 \ lib \ strategy.js: 370: 17) in D: \ node_tutorials \ fb \ node_m2haut \ lib \ strategy.js: 166: 45 a D: \ node_tutorials \ fb \ node_modules \ oauth \ lib \ oauth2.js: 177: 18
Anand,

Un'altra cosa da provare che ha funzionato per me: prova a cambiare i tuoi callback da https a http. Ciò comporta la modifica sia del codice che chiama getLoginUrl () sia della modifica degli URL di richiamata nelle impostazioni dell'app. I callback non hanno mai funzionato con HTTPS per me, per qualche motivo, nonostante il sito utilizzi HTTPS.
Josh1billion,

Ho lo stesso problema, ma all'apertura della pagina localmente; Ho aggiunto 127.0.0.1:8000 agli indirizzi autorizzati, in quanto è configurata la mia installazione di easyphp, ma continua a non funzionare. Posso testare solo script FB online?!?
Jumpjack,

"fai clic sul pulsante Modifica" ummm quale pulsante è?
Alexander Mills,

210

Nel caso in cui qualcuno si imbatta in questo e cerchi queste impostazioni (come me)

Devi

  1. Sul lato sinistro, fai clic su "+ Aggiungi prodotto" e seleziona "Accesso Facebook" (era in alto per me)
  2. Vedi le nuove impostazioni disponibili sul lato sinistro
  3. Ora avrai queste impostazioni OAuth su quelle "Impostazioni prodotto"

inserisci qui la descrizione dell'immagine

Informazioni aggiuntive: assicurati di aggiungere l'URL di richiamata come http://localhost:3000nel Valid OAuth redirect URIscampo nella pagina delle impostazioni di Facebook Login


22
Questo non è ciò a cui si riferisce il messaggio di errore. Esiste un messaggio di errore specifico relativo agli URI di reindirizzamento OAuth validi , che non è ciò che sta accadendo qui. Il messaggio si riferisce chiaramente a Impostazioni »Di base» Domini app. Tuttavia, il problema è che anche se sono stati compilati i domini corretti, il messaggio di errore viene comunque visualizzato.
fritzmg,

A parte il dizionario urbano di @HakamFostok, la matematica regna in ordine superiore per il significato di LHS / RHS en.wikipedia.org/wiki/Sides_of_an_equation , specialmente nel mondo della programmazione.
Craig Lambie,

9
Questo mi ha risolto. Anche se il dominio è stato compilato correttamente, non ho aggiunto un URL di reindirizzamento. L'aggiunta dell'URL di reindirizzamento ha risolto il problema. Sembra che al momento FB stia inviando un messaggio di errore errato per questo problema.
Richard Garside,

sto lavorando localmente e questo è il mio URL 127.0.0.1/CM/public quale dovrebbe essere il mio URI di reindirizzamento OAuth valido?
Youssef Boudaya,

1
Questo ha funzionato per me in API v2.7 e il commento di @ RichardGarside è accurato. Non ho impostato alcun valore Valid OAuth Redirect URIse l'aggiunta di questo valore di campo ha risolto il messaggio di errore FB errato relativo all'aggiornamento di App Domains.
Johnsampson,

60

Ho avuto lo stesso problema. L'ho risolto aggiungendo il mio URI di reindirizzamento OAuth come argomento alla chiamata della funzione getAccessToken:

$redirectLoginHelper->getAccessToken("https://www.example.com/myfacebookcallback")

Se non viene inviato alcun argomento in tale funzione, l'SDK genera da solo l'URI di reindirizzamento che dovrebbe funzionare, ma nel mio caso non lo è stato.

Spero che questo aiuti qualcuno.


2
Questo è l'unico modo per farlo funzionare dopo aver spostato il mio sito Web da http a https. Anche dopo aver modificato tutti i domini nelle impostazioni dell'API di Facebook, non avrebbe funzionato.
Chris,

6
Questa dovrebbe essere la risposta accettata. Risolve il problema!
Tormuto,

Nel mio caso, l'URL stesso non dovrebbe includere parametri vuoti. Quando do "www.example.com?param" a getAccessToken, FB dice sempre che non corrisponde all'URI che ho dato a getLoginUrl, che sono assolutamente sicuro che sia esattamente lo stesso. L'uso di "www.example.com" non genera tale errore.
Chlind

2
grazie . risolto da questo - davvero brutto da Facebook perché tutti questi errori sono astratti / ambigui e non sai dove guardare troppo
digitalzoomstudio

Questo risponde alla domanda.
John

35

Assicurati che la tua app sia pubblica. Fai clic su + Aggiungi prodotto Ora vai a prodotti => Facebook Accedi Ora procedi come segue:

URI di reindirizzamento OAuth validi: esempio.com/

Rimuovi l'autorizzazione dell'URL di richiamata: https://example.com/facebookapp http://unicodeitsolutions.com/


1
A cosa Deauthorize Callback URL : https://example.com/facebookappserve? Funzionerà senza quello?
Giordania,

La rimozione dell'autorizzazione dell'URL di richiamata non è obbligatoria ... quando l'utente annullerà l'autorizzazione della nostra app, Facebook ci chiamerà tramite l'URL.
Sanjoy Kanrar il

20

Ecco cosa ho fatto per risolvere questo problema: inserisci qui la descrizione dell'immagine

Fondamentalmente:

1) Abilita " Accesso OAuth browser incorporato "

2) Disabilita " Usa la modalità rigorosa per gli URI di reindirizzamento " e inserisci un URI di reindirizzamento come ho fatto io.

3) Lasciare tutte le altre opzioni come sono.

4) Salva le modifiche.

5) Divertiti :)


Questo mi ha risolto. Non volevo rendere pubblica la mia app perché stavo solo facendo un tutorial e testandolo localmente. Grazie @bangbang
PHBeagle

1
Per me, utilizzare la modalità rigorosa per gli URI di reindirizzamento non può essere disabilitato.
fdehanne,

8

Ho avuto lo stesso problema e proveniva da un client_id / ID app Facebook errato.

Hai cambiato la tua app di Facebook in "pubblica" o "online? Quando lo fai, Facebook crea una nuova app con un nuovo ID app.

Puoi confrontare il valore del parametro "client_id" nell'URL con quello nella dashboard di Facebook.


Tutto quello che ho fatto è stato modificare il dominio e l'URL del sito in modo che corrispondessero al passaggio da localhost a photovote.dev. Ho aggiornato l'URI di reindirizzamento sulla mia app e anche nelle impostazioni di Facebook. Potrei semplicemente provare a creare una nuova app
dangel

hmm, immagino di aver cambiato qualcosa nelle impostazioni dell'app che ha causato la generazione di un nuovo ID, perché hai ragione, non corrispondeva più. Forse quando ho aggiornato l'URL del sito? indipendentemente dal fatto che funzioni di nuovo
dangel

Questo ha funzionato per me. Stava usando un vecchio ID app in produzione.
Marcus W,

8

Il modo in cui l'ho risolto: sono andato alla casella di testo URI di reindirizzamento OAuth valido e ho impostato l' URL esatto , non solo il dominio :

prima: https://my-website.com

dopo: https://my-website.com/facebookoauth/facebooklogin

(l'URL potrebbe essere diverso nel tuo caso, controllalo nella barra degli indirizzi del browser).

Ciò è stato causato dall'impostazione Usa la modalità rigorosa per gli URI di reindirizzamento, che è stato bloccato nella posizione Sì.


Grazie mille per questo. Questo risolto il mio problema
vickris il

7

Impossibile caricare l'URL: il dominio di questo URL non è incluso nei domini dell'app. Per poter caricare questo URL, aggiungi tutti i domini e i sottodomini della tua app nel campo Domini app nelle impostazioni della tua app.

Ho avuto questo problema oggi, trovo la documentazione di Facebook e SDK irrispettosa e arogante verso gli altri sviluppatori, per non dire altro.

Oltre ad avere i "domini app" in due posizioni diverse senza molte informazioni (3 se aggiungi una piattaforma "web"), devi anche andare ai prodotti app / login / impostazioni di Facebook e aggiungere il tuo URL di reindirizzamento sotto URI di reindirizzamento OAuth validi

L'errore dice NULLA sulle impostazioni oauth.


1
Sì, ho dovuto fare anche questo ulteriore passaggio. Condivido le tue opinioni sulla documentazione!
Magnus Smith,

6

A partire dal 2017-10.

Soluzione che ha risolto il mio problema.

Attualmente quel FB rende questa sorpresa.

... Impostazioni OAuth client dell'app. Assicurati che Client e Web OAuth Login siano attivi ...

inserisci qui la descrizione dell'immagine

Le impostazioni da regolare si trovano qui https://developers.facebook.com/apps/[your_app_itentifier[/fb-login/ .

La barra finale è importante. Devono corrispondere nel codice dell'app e nelle impostazioni dell'amministratore FB. Quindi questa è una configurazione da qualche parte nel tuo codice (vedi sotto come ottenere qualsiasi nome di dominio per un'app di sviluppo):

{
    callbackURL: `http://my_local_app.com:3000/callback/`, // trailing slash
}

e qui

inserisci qui la descrizione dell'immagine

Per ottenere qualsiasi nome di dominio per un'app su un computer Windows locale, modifica il hostfile. Nomi personalizzati sono buone, al fine di sbarazzarsi di tutti coloro localhost:8080, 0.0.0.0:30303, 127.0.0.0:8000, ecc. Perché alcuni servizi di terze parti come FB a volte non riescono a lasciarti usare127.0.0.0 nomi.

Su Windows 10 il hostsfile è qui:

C:\Windows\System32\drivers\etc\hosts

Esegui il backup del file iniziale, creane una copia con un nome diverso (non funziona in Windows CMD nativo. Uso Git per Windows , ha molti comandi Unix)

$ cp hosts hosts.bak

Aggiungi questo in hosts

127.0.0.1  myfbapp.com # you can access it in a browser http://myfbapp.com:3000
127.0.0.1  www.myotherapp.io # In a browser http://www.myotherapp.io:2020

Per sbarazzarsi della parte della porta :3000, ad esempio, impostare NGINX.


Grazie per questo, non avevo idea che fosse necessaria la barra finale!
Andy Holmes,

l'11 maggio 2018, l'URL di richiamata sulle app e gli URI di reindirizzamento oauth validi su Facebook devono essere uguali. e https è necessario però.
Yuda Prawira,

La barra finale mi fa risparmiare tempo. Grazie!
HyoJin KIM


6

Il più delle volte succede senza inserire un URL di reindirizzamento OAuth valido e valido nella sezione prodotto della dashboard di FB. Suggerisco di seguire i miei passaggi seguenti

01. Controlla che l'impostazione di base dell'app sia a posto con l'immagine qui sotto con te

inserisci qui la descrizione dell'immagine

02. controlla se hai aggiunto un prodotto

In caso contrario, puoi aggiungere facilmente il prodotto di accesso facendo clic su + seno come mostrato di seguito.

Se Sì, è appena arrivato all'interno dell'impostazione del prodotto. inserisci qui la descrizione dell'immagine

03. Verifica se hai fornito un URL di reindirizzamento OAuth valido

È semplice cosa dovrebbe succedere dopo il login. Non è altro che la tua richiamata URl. Puoi vedere nella mia foto qui sotto che ho aggiunto diversi URL di reindirizzamento. inserisci qui la descrizione dell'immagine

  1. hai qualche problema in più Guarda il mio video--> https://www.youtube.com/watch?v=mdhubrzV5y8&t=3s

Domanda di 2 anni e collegamenti a siti esterni non dovrebbero essere il contenuto principale di una risposta.
zzxyz,

6

Facebook ha recentemente disattivato il pulsante di attivazione / disattivazione di " Usa modalità rigorosa per gli URI di reindirizzamento ", quindi è necessario aggiungere l'URI esatto che viene chiamato quando si preme il pulsante di accesso. Per il mio caso era come mostrato nello screenshot. Mi ha risolto il problema :)

inserisci qui la descrizione dell'immagine



5

Nel mio caso, le cose che dovevo fare è solo abilitare il login OAuth del browser incorporato

inserisci qui la descrizione dell'immagine


Stavo anche usando il login basato sul browser, quindi lo stesso problema che stavo affrontando. Inoltre c'è una casella di input in basso in cui ho dovuto inserire il mio URI di reindirizzamento esatto.
absin

4

Niente ha funzionato davvero per me, fino a quando non ho aggiornato la versione SDK che stavo usando. Ho iniziato con 5.0. Nemmeno la 5.4.0 non funzionerebbe neanche. Quando ho aggiornato alla 5.6.2, ha funzionato perfettamente, nonostante non ci fosse nulla nei log delle modifiche che fosse rilevante!


1
Ho avuto esattamente questo problema! Stavo usando "5.4.2" e aggiornato a "5.6.2"
John Smith il

2

Questa opzione dovrebbe essere abilitata nel portale:

inserisci qui la descrizione dell'immagine


Grazie. Ho avuto lo stesso problema e questo è stato l'interruttore che mi mancava.
timeon

Grazie! Questo ha funzionato anche per me (stavo usando Google Firebase. Ho anche dovuto impostare gli "URI di reindirizzamento OAuth validi" sull'URI di reindirizzamento OAuth che mi è stato fornito da Google per il mio progetto.)
mwang25

2

Nel caso in cui ciò aiuti qualcun altro, questo ha iniziato a verificarsi per me su un sito precedente quando "URI di reindirizzamento OAuth validi" sono diventati obbligatori. Il sito utilizzava ancora l'SDK V4 PHP e il problema è stato risolto aggiornando l'SDK V5.


1

Nella sezione Dominio app, stai scrivendo il dominio dell'app ma devi anche aggiungere il dominio di accesso, ad esempio il nome della pagina html in cui chiedi all'utente di accedere. Nel mio caso, lo stavo testando su localhost e il percorso di accesso era localhost / login, se ho inserito solo http://localhost.com nella sezione Dominio app, ottengo questo errore. Ma dopo aver aggiunto http: //localhost/login.com , l'errore è stato corretto. e anche le impostazioni dell'app sono state modificate nella versione più recente di SDK, in cui non è disponibile alcuna opzione per il percorso di reindirizzamento OAuth. Devi assegnare la route di reindirizzamento direttamente dal lato server, dopo aver ottenuto correttamente il token OAuth.


1

Questo ha funzionato per me:

Ecco la cosa principale da capire: Facebook controllerà sempre il dominio " WWW ". Quindi assicurati di www.your_domain.dev stia funzionando sul tuo browser.

È possibile che se si hanno più host virtuali sul proprio server locale, alcuni altri host virtuali sovrascrivono " www.tuo_dominio.dev ". Quindi per favore controlla quello. Apache sceglierà la PRIMA definizione di dominio (o porte, o qualcosa in questi termini - non sono esperto in questo, ma ho imparato dagli errori). Una soluzione rapida e semplice per questa sostituzione dell'host virtuale è quella di inserire " www.your_domain.dev la definizione dell'host virtuale nella parte superiore del file" httpd-vhosts.conf ".

Vai su " /apache/conf/https-vhosts.conf " e mettilo in cima al file:

<VirtualHost *:80>
<Directory "C:/your_app_folder_path/">
    Options FollowSymLinks Indexes
    AllowOverride All
    Order deny,allow
    allow from All
</Directory>
ServerName your_domain.dev
ServerAlias your_domain.dev
DocumentRoot "C:/your_app_folder_path/"
</VirtualHost>

###### FOR SSL #####
<VirtualHost *:443>
    DocumentRoot "C:/your_app_folder_path/"
    ServerName your_domain.dev
    ServerAlias www.your_domain.dev
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"
    <Directory "C:/your_app_folder_path/">
        Options All
        AllowOverride All
        Require all granted 
    </Directory>
</VirtualHost>

Successivo: Se si utilizza il sistema Windows, modificare il file "hosts" in "C: \ Windows \ System32 \ drivers \ etc" aggiungendo due righe:

127.0.0.1 your_domain.dev
127.0.0.1 www.your_domain.dev

Successivo: riavvia il tuo server Apache e tutto dovrebbe funzionare ora.


Spero che questo ti possa aiutare e risparmiare tempo. Ho perso quasi un'intera giornata a cercare in giro per il web e mi stavo togliendo i capelli e non ho trovato nulla di utile fino a quando non l'ho trovato.


1

Ho avuto lo stesso problema ..... il issu è nella versione PHP SDK 5.6.2 e la correzione stava modificando il seguente file:

facebook\src\Facebook\Helpers\FacebookRedirectLoginHelper.php

cambia questa linea

$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code']);

per

$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code','enforce_https']);


0

Questo stesso errore di Facebook mi è successo nell'ambiente di produzione. Il motivo era che avevo 2 app registrate con Facebook (locale, produzione) ma ho inserito l'ID app locale nel codice sorgente e ho dimenticato di cambiarlo per l'ID app di produzione prima della distribuzione.

Le migliori pratiche impongono che l'ID app non sia codificato nel codice sorgente, ma in tal caso, non abbinare i vari ID app Facebook come ho fatto per errore.


0

Utilizzando il mio server locale.

Aggiungendo semplicemente http://localhost/my-sitecome URL in:

https://developers.facebook.com/apps/YOUR-APP-ID/fb-login/

ha funzionato per me.


0

Il problema e le risposte continuano a cambiare mentre FB restringe la procedura di accesso. Oggi ho iniziato a ricevere questo messaggio horror "Il dominio di questo URL non è incluso nei domini dell'app. Per poter caricare questo URL, aggiungi tutti i domini e i sottodomini della tua app nel campo Domini app nelle impostazioni della tua app".

La risposta è stata: ora FB vuole l'uri di reindirizzamento completo. Quindi per me, dove prima era solo https://www.example.com ora vuole https://www.example.com/auth/facebook/callback . Questo deve andare nel campo "URI di reindirizzamento OAuth validi" (impostazione Developer / Facebook login->)



0

primo passo: usa tutto https://example.in o l'URL del certificato SSL, non utilizzare http://example.in

secondo passaggio: impostazione dell'applicazione faceboook-> impostazione di base-> aggiungi il tuo dominio o sottodominio

terzo passaggio: impostazione di login dell'applicazione faceboook-> URI di reindirizzamento OAuth validi-> aggiungi l'URL di reindirizzamento completo dopo il login

quarto passo: impostazione dell'applicazione faceboook-> impostazione avanzata-> Gestione dominio-> aggiungi il tuo nome di dominio

eseguire tutto questo passaggio quindi utilizzare l'id dell'applicazione, la versione dell'applicazione, il segreto dell'app per l'installazione


0

sull'estensione di accesso social di Magento 2, devi copiare gli URI di reindirizzamento OAuth validi dal pannello e aggiungere il collegamento al campo URI di reindirizzamento OAuth valido nella pagina Impostazioni OAuth client su developers.facebook.com



-1

La maggior parte delle risposte riguarda l'aggiunta dell'URL al dominio dell'app, ma quando si lavora in un'azienda non si dispone di questi accessi, per cui è possibile ignorarlo semplicemente creando un host virtuale e inserendo una voce host.


aggiungilo nel file host (/ etc / hosts) 127.0.0.1 www.tuo_dominio.com

creare un host virtuale. L'ho usato per l'host virtuale apache

ServerAdmin webmaster @ localhost ServerName www.tuo_dominio.com

    ProxyPass / http://localhost:5006/
    RewriteMap  lc int:tolower
    LogLevel debug

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.