Facebook-Authentifizierung mit Pass und ExpressJS - Warum ist verify-callback nicht aufgerufen?
Ich bin Passport zur Authentifizierung der Benutzer in ein ExpressJS Anwendung. Ich bin versucht, alle Facebook-Routen in Ihrem eigenen Modul, weil ich die Absicht habe, zu unterstützen, andere OAuth-Anbieter. In mein start-script habe ich definiert, die erforderlich FB-Endpunkte:
var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var facebook = require('./routes/facebook');
var login = require('./routes/login');
var http = require('http');
var path = require('path');
var app = express();
/* Configuration stuff here*/
//development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
app.get('/login', login.index);
app.get('/auth/facebook', facebook.fb_auth);
app.get('/auth/facebook/callback', facebook.fb_callback);
Wie Sie sehen können ich bin erfordert meine 'facebook' - Modul enthält die tatsächlichen Routen und Facebook überprüfen-Rückruf. Es sieht wie folgt aus:
var passport = require('passport')
, FacebookStrategy = require('passport-facebook').Strategy
, User = require('../services/user');
passport.use(new FacebookStrategy({
clientID: 'myclientid',
clientSecret: 'mysecretkey',
callbackURL: "http://localhost:3000/auth/facebook/callback" //localhost:3000 domain is registered domain in fb
},
function(accessToken, refreshToken, profile, done) {
console.log('verify')
User.findOrCreate(profile, function(err, user){
if(err) return done(err);
done(null, user);
});
}
));
//Redirect the user to Facebook for authentication. When complete,
//Facebook will redirect the user back to the application at
// /auth/facebook/callback
exports.fb_auth = function(req, res){
passport.authenticate('facebook')
};
//Facebook will redirect the user to this URL after approval. Finish the
//authentication process by attempting to obtain an access token. If
//access was granted, the user will be logged in. Otherwise,
//authentication has failed.
exports.fb_callback = function(req, res){
console.log('callback')
passport.authenticate('facebook', { successRedirect: '/',
failureRedirect: '/login' });
};
Kann ich sehen (Protokollierung von stdout), die fb_auth wird aufgerufen, aber der verify-callback-Funktion definiert, die über nie. Bin ich mit Blick auf etwas? Da ist ein Fehler aufgetreten irgendwo kann ich erfassen?
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich die Antwort hier: Mit PassportJS mit Connect für NodeJS zu authentifizieren Facebook-Nutzer
Müssen Sie explizit aufrufen, die 'authentifizieren' - Funktion und stellen Sie mit req, res, und weiter.
exports.fb_auth = passport.authenticate('facebook');
und ebenso für den Rückruf.