首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手动登录用户- Passport.js?

手动登录用户- Passport.js?
EN

Stack Overflow用户
提问于 2019-10-04 20:49:41
回答 1查看 42关注 0票数 0

我的目标是有一个带有两个选项的post路由--要么用户已经有一个帐户,要么没有。如果用户没有一个帐户,它会创建一个帐户--这是有效的。然而,如果用户确实有一个帐户,我需要更新他们的当前信息,然后登录他们。

所有的东西都在工作,但是如果用户已经有了一个帐户,我一直无法登录用户。这有可能吗?

代码语言:javascript
复制
 router.post("/career-test", function(req, res){

    User.findOne({username: req.body.username}, function(err, existingUser) {
    if (err) {
    return done(err);
    }

    if (!existingUser) {


    var newUser = new User({username: req.body.username});
    console.log('newUser' + newUser)
    User.register(newUser, req.body.password, function(err, user){

        user.career1.name =  req.body.career1Name;
        user.career2.name =  req.body.career2Name;
        user.career3.name =  req.body.career3Name;
        user.career4.name =  req.body.career4Name;
        user.career5.name =  req.body.career5Name;
        user.save()

    if(err){
    req.flash("error", err.message);
    res.redirect('back')
    return res.render("register");

    }
    passport.authenticate("local")(req, res, function(){
    res.redirect("/results"); 
    });
    });

    } else { 

--如果用户已经存在/被找到,则为

代码语言:javascript
复制
      existingUser.career1.name =  req.body.career1Name;
      existingUser.career2.name =  req.body.career2Name;
      existingUser.career3.name =  req.body.career3Name;
      existingUser.career4.name =  req.body.career4Name;
      existingUser.career5.name =  req.body.career5Name;
      existingUser.save()

现在我需要登录现有用户..。这有可能吗?

代码语言:javascript
复制
    res.redirect("/results"); 
    });
    }
    });
    });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-04 21:17:18

结果很简单。在这里找到答案:Update logged in user details in session

保存existingUser数据后,只需执行以下操作:

代码语言:javascript
复制
req.login(existingUser, function(err) {
  if (err) return next(err)
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58243032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档