【发布时间】:2014-11-08 01:51:39
【问题描述】:
我已经使用 express js 和 passport-Facebook 在我的网站中实现了 Facebook-LogIn。它运作良好(我得到了字段资料),但问题是我没有收到电子邮件。我收到一个错误:
email : profile.emails[0].value,
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);
});
});
}));
如果有人可以帮助我解决我的问题,那就太好了:)
【问题讨论】:
-
您是否尝试过记录配置文件对象以查看其中包含的内容?
-
我现在试过了。个人资料不包含电子邮件...
-
如果不使用 profileFields 参数会怎样?
-
我有更多信息。但没有电子邮件
-
也许this question 会有所帮助
标签: node.js facebook-graph-api express passport-facebook