Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Passport.js google登录被中间件重定向_Node.js_Passport.js - Fatal编程技术网

Node.js Passport.js google登录被中间件重定向

Node.js Passport.js google登录被中间件重定向,node.js,passport.js,Node.js,Passport.js,这就是谷歌的战略: passport.use(new GoogleStrategy({ clientID: config.google_consumer_key, clientSecret: config.google_consumer_secret, callbackURL: config.google_callback, passReqToCallback: true }, function(req, accessToken, refreshToken

这就是谷歌的战略:

passport.use(new GoogleStrategy({
    clientID: config.google_consumer_key,
    clientSecret: config.google_consumer_secret,
    callbackURL: config.google_callback,
    passReqToCallback: true
},
    function(req, accessToken, refreshToken, profile, done) {
        User.findOrCreate({ 
            email: profile.email, 
            username:`${profile.given_name} ${profile.family_name}` 
        }, function (err, user) {
            user.connected = true;
            user.save();
            return done(err, user);
        });
    }
));
这就是中间件:

var isAuthenticated = function (req, res, next) {
  if(!req.isAuthenticated()) 
    return res.redirect(301,'/login');
  
  next();
};

module.exports = isAuthenticated;
路线:

router.get('/google-signin',
  passport.authenticate('google', 
    { scope: [ 'email', 'profile' ] }
));
注销呢

logout = async function(req, res){
        req.user.connected = false;
        await req.user.save();
        req.logout();
        return res.redirect('/login');
    }
我第一次登录时没有问题,但是,如果我注销并尝试再次登录,我将被重定向到
/
。我看不出有什么问题


我已经在中间件中设置了一个断点,并且第一次(当它工作时)中间件已执行,但是,当我注销并尝试再次登录中间件时,它未执行

您可以显示您的代码如何注销吗?是的,它添加在问题“您在哪里使用中间件?”中。
/login
使用
isAuthenticated
中间件