Passport.js req.login未更新登录用户

我正在使用带有Express的PassportJS来对用户进行身份验证,并且试图创建一个编辑配置文件页面,您可以在其中更新数据库中的用户详细信息。当我执行req.login更新登录用户时,req.user变为未定义状态,而不是保存新用户的数据。这是我正在使用的与wallet.js相关的代码。

var passport = require('passport');
app.use(session({
    secret:'secret',resave: false,saveUninitialized: false
}));
app.use(passport.initialize());
app.use(passport.session());


//update the logged in user
    db.collection('User').find({"_id": ObjectId(id)}).toArray(function(err,newUser)
    {
        if (err) { console.log(err); }
        else{   
            req.login(newUser[0],function(err) {
                if (err) {
                    console.log(err);
                    res.redirect('/login');
                }else{
                    res.redirect('/editProfile');
                }
            });
        }  
    });


function initialize(passport){
    const authenticateUser = (email,password,done) => {
        db.collection('User').find({"Email": email}).toArray(function(err,user){
            if (err) { console.log(err); }
            else {
                var userFound = user[0];
                em = email;// when user is logged in saves the email,used is cart.

                if(userFound == null){
                    return done(null,false,{message: 'No user found with that email.'})
                }

                if(password.localeCompare(userFound.Password) == 0){ //equal
                    return done(null,user)
                }else{
                    return done(null,{message: 'Password incorrect'})
                }
            };
        });
    }

    passport.use(new LocalStrategy({ usernameField: 'email' },authenticateUser))
    passport.serializeuser((user,done) => done(null,user))
    passport.deserializeuser((user,user))
}
lglzn 回答:Passport.js req.login未更新登录用户

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3163149.html

大家都在问