passportjs google oauth2策略

时间:2017-12-27 11:54:22

标签: javascript node.js express passport.js cookie-session

在PassportJS Google OAuth策略中,由于一些奇怪的原因,当我序列化用户ID并将其发送到cookie以发送到浏览器时,它不会返回id来反序列化它,这告诉我因为当我console.log用户,返回undefined

passport.deserializeUser((id, done) => {
    User.findById(id).then((user, done) => {
        console.log(user);
        done(null, user);
    });
});

详细说明我的cookie在下面

app.use(cookieSession({
  maxAge: 24 * 60 * 60 * 1000,
  keys: 'dkfehfhgddf'
}));

1 个答案:

答案 0 :(得分:0)

如果你使用的是Mongoose,你在代码中犯了一个错误,导致意外行为。

如果您尝试使用findById()功能的Promise版本,则必须在之后调用.exec(),以便发送操作。此外,您已隐藏deserializeUser的{​​{1}}回调,因此永远不会被调用。

以下是它应该如何运作:

done