将 Passport.authenticate 包装在函数内不起作用

Dee*_*arg 2 node.js passport.js

我正在尝试使用 Google OAuth2Strategy 对用户进行身份验证。我有以下路线

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

这完全没问题。但是当我像我对回调所做的那样包装第一个身份验证时,它只是挂起。这是一个错误还是我做错了什么?

这就是我正在尝试的。

**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']});
});**
Run Code Online (Sandbox Code Playgroud)

小智 5

尝试一下,让我们知道它是否有效。(您必须在函数末尾提供 (res,req,next) ,如此链接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);
})
Run Code Online (Sandbox Code Playgroud)