2014-04-07 8 views
6

UPDATE: Kiedy wdrożyć aplikację do meteor.com nie któryś z tych samych kwestii, więc problem jest z pewnością związane ze środowiskiem rozwoju i podejrzewam co zrobić z ROOT_URL i sposobem obsługi przekierowań.Meteor na Nitrous - Can not Get loginWithFacebook pracować


Używam Meteor na Nitrous.io.

Mam zainstalowany pakiet kont-facebook i dodałem następujące w folderze serwera:

ServiceConfiguration.configurations.remove({ 
    service: "facebook" 
}); 

ServiceConfiguration.configurations.insert({ 
    service: "facebook", 
    appId: '31058319242*****', 
    secret: '4f6c8a9b5aab235111e97*********', 
    site_url: 'http://accounts-*****.apse2.nitrousbox.com/' 
}); 

ja również uległy zmianie głównego adresu URL mojej aplikacji przy starcie:

Meteor.startup(function() { 
    Meteor.absoluteUrl.defaultOptions.rootUrl = "http://accounts-*****.apse2.nitrousbox.com/" 
}); 

I włączyłem dokładnie ten sam URL ustawień podstawowych moich aplikacji:

enter image description here

i 'Zaawansowane' ustawienia:

enter image description here

[Oczywiście ***** faktycznie ciąg identyfikujący moje 'pudełka' Nitrous - Mam redacted go tutaj]

Jednak, gdy Próbuję autoryzować za pomocą Facebook pojawia się następujący błąd:

Exception while invoking method 'login' Error: Failed to complete OAuth handshake with Facebook. failed [400] 
{ 
"error": 
    { 
    "message":"Invalid redirect_uri: Given URL is not allowed by the Application configuration.", 
    "type":"OAuthException", 
    "code":191 
    } 
} 

Próbowałem wielu różnych odmian tych ustawień, ale bez powodzenia.

Czy ktoś inny natrafił na ten problem? Pomoc doceniona.

Odpowiedz

10

Problem: ROOT_URL nie jest ustawiony na adres URL skrzynki. Po uruchomieniu aplikacji z poleceniem meteor zauważysz, że terminal nadal mówi: => App running at: http://localhost:3000/.

Meteor.absoluteUrl jest tylko funkcją użytkową (https://github.com/meteor/meteor/issues/858). Podczas uruchamiania aplikacji należy zastąpić zmienną środowiskową ROOT_URL.

Spróbuj uruchomić aplikację pod numerem ROOT_URL=http://accounts-*****.apse2.nitrousbox.com/ meteor. Następnie proces uwierzytelniania Facebooka powinien działać poprawnie.

+0

Dziękuję - to działa. Zastanawiam się, czy jest to skrót w trakcie tworzenia, ponieważ w przeciwnym razie jest dużo pisania. Zamieszczam poniżej zrzut ekranu wymaganego rozwiązania, ponieważ byłem z pewnością zdezorientowany. –

+0

Z pro.nitrous.io możesz ustawić env var w konfiguracji kontenera. Pamiętaj, aby uwzględnić: #### port – Vish

+0

Dzień zapisany! Muszę powiedzieć dziękuję @laktek, że ten problem był naprawdę denerwujący! –

1

laktek's answer above jest poprawna. Dodaję ten obraz, aby zilustrować, w jaki sposób osiągnięto rozwiązanie, ponieważ nie było to dla mnie oczywiste.

pominąć funkcja Meteor.absoluteUrl i zamiast rozpocząć meteor w konsoli azotu następująco:

Powiązane problemy