gpt4 book ai didi

node.js - 在passport.js的用户对象或 session 中的某处添加额外信息

转载 作者:IT老高 更新时间:2023-10-28 23:08:25 27 4
gpt4 key购买 nike

我想在来自 mongodb 并且将由 passport.js 使用的用户对象中添加自定义键,但我想知道为什么我不能向该对象添加更多键,这是我的代码。

passport.use(new LocalStrategy(
function(username, password, done) {
Users.model(false).findOne( {email:username,password:encodePassword(password) }, function(err, user) {
if( err ){ // validation failed
console.log('Error Occurred');
return done(err);
}
else if(user != null){

user['customKey'] = "customValue"; // it is not setting

console.log(user);

return done(null, user);
}
else {

return done(null, false, { message: 'Incorrect username.' });
}
});
}
));
///Session handling
passport.serializeUser(function(user, done) {
done(null, user.id);
});

passport.deserializeUser(function(id, done) {
Users.model(false).findById(id, function(err, user) {
done(err, user);
});
});

最佳答案

查看 another question 的回答:

Either in the deserialization function, before returning the user

passport.deserializeUser(function(id, done) {
getUser(id).then(function(user) {
user.whatever = 'you like';
return done(null, user);
});
});

or in an express middleware (before the router).

app.use(function(req, res, next) {
if(req.user) req.user.whatever = 'you like';
next();
});

关于node.js - 在passport.js的用户对象或 session 中的某处添加额外信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19313332/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com