2016-04-05 31 views
1

Ich bekomme diese Fehlermeldung beim Versuch, die Meteor.loginWithFacebook() -Methode zu implementieren. für meine Anwendung arbeitet jetzt verwendet Einloggen es nicht mehr funktioniert und ich habe keine Ahnung, warum:Meteor.loginWithFacebook schlägt fehl

enter image description here

Ich habe es so eingestellt, dass, wenn der Facebook Login-Button geklickt wird, ist die Meteor.loginWithFacebook() -Methode genannt, wie so (Client-Seite):

'click .facebook-login':function(event){ 
    Meteor.loginWithFacebook({requestPermissions:['user_photos', 'user_videos'], loginStyle:"popup"},function(err){ 
     if (err) 
      throw new Meteor.Error(err, "Facebook Login Failed"); 
    }); 
} 

Server-Seite:

ServiceConfiguration.configurations.upsert(
    { service: "facebook" }, 
    { 
    $set:{ 
     // Development 
     appId: "App-ID-String", 
     secret: "App-Secret-String" 
    } 
    } 
); 

Seltsamer, das funktioniert gut, wenn in der Entwicklung arbeiten, aber wenn ich meinen Code Push-to Mein Produktionsserver, ich bekomme den Fehler oben. Dieser Code hat auch mehrere Monate funktioniert und dann einfach aufgehört zu arbeiten, in der Produktion. Ich habe beide Datenbanken gelöscht, um von Grund auf neu zu starten, und ich bekomme immer noch den Fehler in der Produktion, aber nicht in der Entwicklung.

Bevor Sie es erwähnen, habe ich separate Code-Blöcke, um die verschiedenen appId und Geheimnis basierend auf Entwicklung im Vergleich zur Produktion zu behandeln, aber der Code ist im Wesentlichen der gleiche und Konten für beide Umgebungen.

Antwort

0

Es stellt sich heraus, dass sich das Facebook-SDK speziell auf Ihren URL-Präfix/Host bezieht (falls vor Ihrer URL ein "www" steht) und die URLs als separate Websites behandelt. Wenn ich mich auf meiner Seite anmelde, um mich anzumelden, konnte sich die nicht www-Präfix-URL meiner Seite nicht bei Facebook anmelden, aber das "www" könnte man.

Ich konnte dies beheben, indem ich meine App zwang, die URL 'www' erneut zu laden, wenn die nicht www-URL mit dem folgenden Code aufgerufen wurde. Ich habe die Weiterleitung über die GoDaddy-DNS-Schnittstelle versucht, aber es hat nicht funktioniert.

Meteor.startup(function() { 
    if (location.host.indexOf('www') === -1) { 
    location = 'http://www.example.com'; 
    } 
}); 

Dieses festen sofort mein primäres Problem, obwohl es dies der ideale Weg, um dies nicht scheint, ist der Umgangs mit, da es im Grunde die Anwendung lädt zweimal, wenn der Benutzer die nicht-www-URL besucht.