【发布时间】:2020-04-04 19:48:32
【问题描述】:
我有一个 passportJS 回调,当新用户尝试进行身份验证时,我不希望将新用户数据存储在数据库中,而是在快速会话中以供以后访问,这可能吗?
目前我的代码是:
function facebookAuthenticate(accessToken, refreshToken, profile, done) {
User.findOne({ facebookID: profile._json.id }, (err, foundUser) => {
if (foundUser) {
done(err, foundUser);
} else {
global.authenticationID = { facebookID: profile._json.id };
done(err, null)
}
});
}
但由于全局变量不是用户特定的,它一次只能用于一种身份验证。
理想情况下,我想要一些可以按照这些思路工作的东西,但我当然无法访问路由之外的 req 变量:
function facebookAuthenticate(accessToken, refreshToken, profile, done) {
User.findOne({ facebookID: profile._json.id }, (err, foundUser) => {
if (foundUser) {
done(err, foundUser);
} else {
req.session.authenticationID = { facebookID: profile._json.id };
done(err, null)
}
});
}
非常感谢。
【问题讨论】:
标签: node.js express session passport.js express-session