javascript - 使用 Passport 注册后登录用户

标签 javascript node.js mongodb express passport.js

用户注册后,我希望他们自动登录。我在网上阅读使用 req.login() 的方法,但它似乎不起作用。用户已添加到数据库中,但尚未登录。有人能给我指出正确的方向吗?

        if(type == 'student'){
            User.saveStudent(newUser, newStudent, function(err, user){
                console.log('Student saved');
                req.login(newUser, function(err) {
                    if (err) {
                        console.log(err);
                    }
                })
            })
        } else {
            User.saveInstructor(newUser, newInstructor, function(err, user){
                console.log('Instructor saved');
                req.login(newUser, function(err) {
                    if (err) {
                        console.log(err);
                    }
                });
            })
        }

        res.redirect('/classes');
    }
});

module.exports = router;

最佳答案

哦,我明白发生了什么了。您正在保存用户的回调之外执行 res.redirect() 。它可能在设置登录 cookie 之前进行重定向。

res.redirect() 移至 res.login() 回调中,您应该就可以了。

关于javascript - 使用 Passport 注册后登录用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40047826/

相关文章:

javascript - f(arguments) 和 f.apply(this,arguments) 有什么区别?

javascript - Jquery 在 IE8 及更低版本中附加微妙之处

javascript - 如何在不使用 "__dirname"或 "import.meta.url"的情况下获取 Node.js 中当前模块的目录?

javascript - ReactJS + MongoDB + NodeJS/ExpressJS : What is process. nextTick(function() { throw err; });?

javascript - Node.js 中未定义上传的图像数据

javascript - 使用 NodeJS 获取 API 数据并写入 MongoDB

php - 如何在 laravel mongodb 中对两个字段求和?

javascript - 在jquery中查找可滚动div内的不可见元素

node.js - 蒙戈 : Storing user-specific data for a document

javascript - 与守卫的分配