成功保存在DB后,Passport重定向到登录页面

时间:2014-04-27 03:29:58

标签: node.js mongodb passport.js

我已经设置了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);
        }

    });
}

1 个答案:

答案 0 :(得分:0)

所以,问题在于我没有将return放在done(null, user);

之前