相关疑难解决方法(0)

Passport-Facebook身份验证不会为所有Facebook帐户提供电子邮件

我正在使用Passport-Facebook身份验证.

  passport.use(new FacebookStrategy({
            clientID: 'CLIENT_ID',
            clientSecret: 'CLIENT_SECRET',
            callbackURL: "http://www.example.com/auth/facebook/callback"
        },
        function (accessToken, refreshToken, profile, done) {            
            process.nextTick(function () {                
               console.log(profile)
            });               
        }
    ));

对于一些Facebook帐户,我没有收到email_id,我甚至尝试使用范围变量,如下所示,但我仍然无法获得email_id.

profileUrl:""和ProfileFields:['','']

javascript node.js passport-facebook passport.js

47
推荐指数
3
解决办法
2万
查看次数

Passport-facebook没有收到电子邮件

我已经使用快递js和passport-Facebook在我的网站上实现了Facebook-LogIn.它运作良好(我获得现场简介),但问题是我没有收到电子邮件.我收到一个错误:

email   : profile.emails[0].value,
Run Code Online (Sandbox Code Playgroud)

TypeError:无法读取未定义的属性"0"

我的代码:

passport.use('facebook',new FacebookStrategy({
        clientID            : config.facebook.id,
        clientSecret    : config.facebook.secret,
        callbackURL  : '/auth/facebook/callback',
        profileFields : ['id', 'displayName', 'emails','photos']
    }, function(accessToken, refreshToken, profile, done) {

        User.findOne({provider_id: profile.id}, function(err, user) {
            if(err) throw(err);
            if(!err && user!= null) return done(null, user);

            var user = new User({
                provider_id : profile.id,
                name                 : profile.displayName,
                email               : profile.emails[0].value,
                photo               : profile.photos[0].value,
            });
            user.save(function(err) {
                if(err) throw err;
                return done(null, user);
            });
        });
    }));
Run Code Online (Sandbox Code Playgroud)

如果有人可以帮我解决我的问题,那将会很棒:)

node.js facebook-graph-api express passport-facebook

13
推荐指数
1
解决办法
5599
查看次数