尝试为我正在处理的应用程序创建登录页面时遇到一些问题。我希望我的应用程序执行的操作是使用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对象?