2010-12-30 15 views
22

Sto tentando di configurare Omniauth come descritto in questo Railscast. Mentre funziona con Twitter, non riesco a farlo funzionare con Facebook. Ho anche creato 'http://localhost:3000' come siteurl e 'localhost' come dominio, ma continuo a vedere il seguente messaggio di errore nel browser:Omniauth Autenticazione Facebook su localhost

Invalid redirect_uri: Given URL is not allowed by the Application configuration. 

Qualcuno di voi ha qualche suggerimento su come risolvere questo problema? Grazie in anticipo.

+0

Non penso di aver aggiunto alcuna configurazione tranne "http://0.0.0.0:3000/". Quando avvii il tuo server Rails locale, quale indirizzo IP dice che sta usando? – monocle

+0

Si dice http://0.0.0.0:3000. Che cosa hai aggiunto in modo esatto nel tuo file host? –

+0

Non ho mai modificato il mio file hosts. Ha 127.0.0.1 per localhost. – monocle

risposta

32

Dai un'occhiata al reindirizzamento nell'URI. Ho letto localhost: 3000 quindi ho cambiato l'URL del sito in "http: // localhost: 3000 /" e ha funzionato.

+2

Adesso funziona! Grazie mille. ha incontrato questo problema http://stackoverflow.com/questions/3977303/omniauth-facebook-certificate-verify-failed. Ho seguito i consigli forniti nella risposta e si è verificato un altro errore: nessuna route corrisponde a "/ auth/failure" .. Spero di trovare una soluzione anche per questo –

+2

C'è un modo per testare in localhost e avere ancora l'app che lavora sull'ambiente di produzione? Voglio dire, posso accedere alla mia app solo tramite facebook e voglio continuare a testarlo localmente senza avere per cambiare il destino di reindirizzamento su Facebook. –

+1

finalmente qualcuno in pila con una risposta perfetta per questa merda! grazie –

7

Provare a utilizzare

http://0.0.0.0:3000/ 

per il 'Site URL'. Questo funziona per me. (Inoltre, non ho nulla nel campo "Dominio del sito".)

+0

continua a ricevere lo stesso errore dopo aver seguito i tuoi consigli. hai aggiunto qualche riga al tuo file host? sto iniziando a perdere la ragione per questo .. :( –

+0

Rails finalmente non converti '127.0.0.1' in' localhost', posso concedere l'accesso ora, grazie –

28

Ecco cosa ha funzionato per me.

In questo momento Facebook non consente di impostare il dominio del sito su un indirizzo IP, quindi non è possibile impostare l'URL del sito su http://127.0.0.1:3000/ in quanto Facebook si lamenterà che l'URL non corrisponde al dominio.

Quindi nel tuo Facebook App impostare il:

Site URL: http://localhost:3000/ 
Domain: localhost 

Quando si accede l'applicazione sulla propria macchina dev assicurarsi di digitare localhost: 3000 nel browser. Se usi 127.0.0.1:3000 OmniAuth lo userà nell'URL di callback che invia a Facebook e poi Facebook lancerà l'errore che Ryan menziona sopra.

+0

dove dovresti impostarli? In quale file? – kibaekr

+0

@kibaekr nella dashboard dell'app Facebook https://developers.facebook.com/apps/YOUR_APP_ID/summary –

+0

Esiste un modo per eseguire il test in localhost e avere ancora l'app in ambiente di produzione? Voglio dire, posso accedere alla mia app solo tramite Facebook e voglio continuare a testarlo localmente senza dover modificare il destino di reindirizzamento su Facebook –

15

Passare a http://lvh.me:3000 nel browser locale per verificare localmente Facebook. Quindi, nelle impostazioni dell'app Facebook, fai lvh.me il tuo dominio.

lvh.me è un dominio registrato che punta a 127.0.0.1 che uno sviluppatore ha acquistato per testare i sottodomini localmente.

+0

Grande consiglio. Grazie! – bikedorkseattle

0

Se siete su OSX si può usare pow http://pow.cx/ rinominare localhost a

http://yourapp-dev 

(non è realmente rinominato, è aggiunto)

è possibile impostare che come un nome di dominio valido su facebook.

+3

Hai provato? Perché ho avuto un problema con esso. Facebook non ha permesso l'indirizzo .dev. – Shmidt

Problemi correlati