重定向后返回工作流程

时间:2019-05-10 21:16:19

标签: node.js passport.js

尝试为我正在处理的应用程序创建登录页面时遇到一些问题。我希望我的应用程序执行的操作是使用passport-facebook收集有关用户的一些基本信息,然后要求他们提供有关自己的一些其他信息。我最初首先创建用户,然后向他们询问其他信息,但是我意识到,如果用户创建一个帐户并在提供其他信息之前关闭页面,则会在数据库中引起一些错误。我的代码的相关部分在这里

router.get('/callback', function(req,res,next) {
    passport.authenticate('facebook', function(err, user, user_info) {
        if (err) {
            res.status(400).send("Error Logging in");
        }
        if (!user) {
            res.status(200).redirect(url.format({
                pathname:"/add_info",
                query: user_info
            }));
        }
        else {
            req.logIn(user, function(err) {
                if (err) {
                    return next(err);
                }
                else {
                    res.status(200).send("Successfully logged in existing user");
                }
            });
        }
    })(req, res, next);
});

如您所见,我尝试使用查询字符串将从facebook收集的用户信息传递给要求其他信息的处理程序。我意识到这可能行不通,因为我需要获取其他信息,然后再返回passport.authenticate,这样我才能登录用户并设置会话。那么是否可以转到/ add_info并使其返回带有用户完整数据的json对象?

0 个答案:

没有答案