Express facebook passport/本地passport冲突-无法使用facebook登录

Express facebook passport/本地passport冲突-无法使用facebook登录,express,mongoose,passport-local,passport.js,passport-facebook,Express,Mongoose,Passport Local,Passport.js,Passport Facebook,我一直在尝试使用facebook和passport.js登录。我在当地用passport登录的效果很好,但他们一起给我带来了麻烦。我正在与express、mongoose、passport和passport facebook合作。我已经尝试了很多方法来修复它(很多方法我都忘记了),我现在非常迷茫我的shell中不断出现这个错误: GET/auth/facebook 302 4.876 ms-0 {id:5918a12f6ab8492354a3098c, 脸谱网: {电子邮件:'somethin

我一直在尝试使用facebook和passport.js登录。我在当地用passport登录的效果很好,但他们一起给我带来了麻烦。我正在与express、mongoose、passport和passport facebook合作。
我已经尝试了很多方法来修复它(很多方法我都忘记了),我现在非常迷茫
我的shell中不断出现这个错误:

GET/auth/facebook 302 4.876 ms-0
{id:5918a12f6ab8492354a3098c,
脸谱网:
{电子邮件:'something@mail.com',
姓名:'约翰',
标记:“EAABHTCEA34SBAMKMOVWU0G62WUC3ANIHJTWODJDSD0XS9NWPPBXZCHCTXEME8P0P5VT8WY0ZBADWKUOJB96BZ661D9ZCZBXSKX8TFZBBMD3HYCOQGSJXZAQYKP358XJXOCU1TGOUVIZB9JVZMP935R5BFOOLOOEZCTZEINV8D8DZO8DZX”,
id:'10155442104714916'}
(节点:9044)弃用警告:Mongoose:mpromise(Mongoose的默认承诺库)已弃用,请插入您自己的承诺库:http://mongoosejs.com/docs/promises.html
events.js:165
犯错误;
^
错误:未捕获、未指定的“错误”事件。(空)
在Function.emit(events.js:163:17)
在E:\Documenten\GitHub\webtech2 demordie\node\u modules\mongoose\lib\model.js:3739:13
在E:\Documenten\GitHub\webtech2 demordie\node\u modules\mongoose\lib\services\model\applyHooks.js:146:20
at _combinedTickCallback(内部/流程/下一步_tick.js:73:7)

在进程中。_tickCallback(internal/process/next_tick.js:104:9)
当你试图在Facebook策略中保存新用户时,你总是抛出一个错误

    newUser.save(function(err, user){
If(err) {
console.log(err)
throw err
// return done (err)
}
return done(null, user)
})
似乎只是{}。你忘了

希望它能帮助你。

可以试试看

var passport = require('passport'),
facebookStrategy = require('passport-facebook').Strategy,
User = require('path user model');
   passport.use(new facebookStrategy({
    clientID: 'Client ID',
    clientSecret: 'Client secret',
    callbackURL: "http://localhost:3000/auth/facebook/callback"
}, function(accessToken, refreshToken, profile, cb){
    User.findOne({ facebookId : profile.id }, function (err, user) {
        if(err){
            return cb(err, false, {message : err});
        }else {
            if (user != '' && user != null) {
                return cb(null, user, {message : "User "});
            } else {
                var username  = profile.displayName.split(' ');
                var userData = new User({
                    name : profile.displayName,
                    username : username[0],
                    password : username[0],
                    facebookId : profile.id,
                    googleId : '',
                });
                // send email to user just in case required to send the newly created
                // credentails to user for future login without using facebook login
                userData.save(function (err, newuser) {
                    if (err) {
                        return cb(null, false, {message : err + " !!! Please try again"});
                    }else{
                        return cb(null, newuser);
                    }
                });
            }
        }
    });
}));

希望这对你有帮助

如果电子邮件地址是真的,你可能想删除它。thnx忘了这一点太棒了,谢谢!!盯着它看了这么久,我完全错过了。太好了!如果您能把它标为正确答案,我将不胜感激!!:-)