我已经设置了Passport与Facebook策略(只是Facebook策略),并设置检查用户是否存在功能,以在用户集合中保存Mongodb中的用户。 我抛出console.log以便在DB中成功保存,我可以看到用户已经成功保存在集合中(我也可以在DB中看到它与终端。
但问题是,注册成功后,passport.authenticate功能会将我带到登录页面而不是“getusergames”。页。 任何想法为什么会这样?
function(accessToken, refreshToken, profile, done) {
// Checking if this user is already in DB and if no, Add this user to DB
insertUser.findOne({facebook_id: profile.id}, function(err, user) {
// Print Error
if (err) {
return done(err);
}
// Save new user if there is no user exists
if (!user) {
var userId = profile.id;
var userToken = accessToken;
var user_name = profile.displayName;
var newuser = new insertUser({
username: user_name,
facebook_id: userId,
facebook_token: userToken
});
newuser.save(function(err) {
if (err) {
console.log(err);
} else {
console.log('New User has Saved!');
done(null, user);
}
});
}
// If there is a user, Return his object and done.
else if (user) {
done(null, user);
}
});
}
答案 0 :(得分:0)
所以,问题在于我没有将return
放在done(null, user);