Ich baue eine Chrome-Erweiterung, die mit einem Node.js/Restify-Webdienst interagieren wird, den ich auch baue. Ich benutzte pass.js, um ein paar API-Endpunkte zu erstellen, die Nutzer treffen und mit Facebook authentifiziert werden können. Als ich jedoch das Chrome-Extension-Piece zum Laufen brachte, merkte ich, dass es beim Versuch, meine Facebook-Authentifizierungs-Endpunkte über Ajax anzufordern, alle möglichen CORS-Probleme gab.Wie authentifiziere ich mich am besten in einer Chrome-Erweiterung mit Facebook?
Nach der Untersuchung des Problems online, es sieht aus wie die meisten Menschen Facebook auth alle auf der Client-Seite. Jetzt denke ich, vielleicht schreibe ich die Erweiterung neu, um clientseitige Facebook-Authentifizierung zu verwenden und alles andere (nicht-Facebook) über meine Restify API zu behalten.
My Facebook Auth Endpunkte wie folgt aussehen:
server.get('/facebook_login/callback', auth.authenticate({
failureRedirect: '/error',
scope: [
auth.fbPermissions.email,
auth.fbPermissions.publicProfile
]
}), function(req, res, next) {
res.redirect('/', next);
});
server.get('/facebook_login', auth.authenticate({
failureRedirect: '/error',
scope: [
auth.fbPermissions.email,
auth.fbPermissions.publicProfile
]
}));
Und die einzige in der Verlängerung JavaScript-Code ist dies:
document.addEventListener('DOMContentLoaded', function() {
window.open("http://localhost:8080/facebook_login");
});
Wenn jemand gearbeitet hat eine dieser Methoden bekommen, lassen Sie mich wissen, . Jede Hilfe wird geschätzt!
_ "Ich erkannte, dass es alle Arten von CORS-Problemen gab" _ Sie müssen klären, was Sie damit meinen. CORS ist normalerweise kein Problem für Erweiterungen. Überprüfen Sie auch 'chrome.identity'. – Xan
@Xan nachdem ich meinen Code geändert habe, um die CORS-Fehler zu reproduzieren, merkte ich, dass ich sie nicht mehr bekommen habe, solange ich die Login-URLs in einem neuen Fenster geöffnet habe. Auch "chrome.identity" sieht nützlich aus, also vielen Dank für diesen Rat. –