2016-03-31 9 views
0

Ich versuche, Benutzer mit Google OAuth2Strategy zu authentifizieren. Ich habe unter RoutenWrapping pass.authenticate innerhalb einer Funktion funktioniert nicht

**server.get('/user/google', passport.authenticate('google', {scope: ['openid email profile']}); 
server.get('/user/google/callback', authenticate.authenticateGoogleCallback);** 

und das funktioniert völlig in Ordnung. aber wenn ich die erste Authentifizierung wie das, was ich für den Rückruf getan habe, umbringe, hängt es einfach. Ist es ein Fehler oder mache ich etwas falsch?

Das ist, was ich versuche.

**server.get('/user/google', authenticate.authenticateGoogle); // NOT WORKING 
server.get('/user/google', function(req,res,next){ // NOT WORKING 
    passport.authenticate('google', {scope: ['openid email profile']}); 
});** 

Antwort

0

Versuchen Sie dies und lassen Sie uns wissen, wenn es funktioniert. (Sie müssen liefern (res, erf, next) in Ende Funktion wie in diesem Link beschrieben http://passportjs.org/docs)

server.get('/user/google', function(req, res, next) { 
 
    passport.authenticate('google', { 
 
    scope: ['openid email profile'] 
 
    } ,function(err, user, info){ 
 
    res.send(user); 
 
    })(req,res,next); 
 
})

+0

Danke. Du bist ein Genie. –

+0

Für Koa (koajs.com) ersetzen Sie '(req, res, next)' durch '(ctx, next)'. – kev

Verwandte Themen