2017-09-08 3 views
0

Die Passport.js-Strategie, die ich versuche zu implementieren, ist die für den Facebook-Anbieter. Ich habe mit dem Lehrbuchbeispiel getestet (aus https://github.com/passport/express-4.x-facebook-example) und es scheint, dass die Weiterleitung nie aufgerufen wird.passww.js facebook authentification next not working

Die Redirect-Sequenz funktioniert gut, außer wenn der Benutzer angemeldet ist, leitet sie zur Homepage um, auch wenn Sie explizit eine andere URL in den Callback setzen.

So funktioniert alles außer der letzten Umleitung, die bei https://xx.com/testing enden sollte, was nie passiert.

NodeJS 6, Express- 4+, Pass 3.2

Was nicht in Ordnung ist?

Strategie

passport.use(new FacebookStrategy({ 
    clientID: xx, 
    clientSecret: 'xx', 
    callbackURL: 'https://xx.com/auth/facebook/callback/', 
    profileFields: ['id', 'email', 'name', 'displayName'] 
}, 
    function (accessToken, refreshToken, profile, done) { 
     return done(null, profile) 
    } 
)) 

Strecke

router.get('/auth/facebook', passport.authenticate('facebook', {scope: ['public_profile', 'email']})) 
router.get('/auth/facebook/callback', 
    passport.authenticate('facebook', { failureRedirect: '/login' }), 
    function(req, res) { 
    // never gets called 
    console.log('I don't get called!!!') 
    res.redirect('/testing') 
    }) 

Antwort

1

/testing geht an successRedirect

passport.authenticate('facebook', { 
    successRedirect: '/testing', 
    failureRedirect: '/login' 
})); 

UPDATE: Verwenden Sie passport.authorize

router.get('/auth/facebook/callback', 
    passport.authorize('facebook', { failureRedirect: '/login' }), 
    function(req, res) { 
     res.redirect('/testing') 
    }); 
+0

Das funktioniert wie erwartet, aber ich möchte Code ausführen, dann umleiten. – Astuanax

Verwandte Themen