当前位置: 首页 > 面试题库 >

Passport-facebook没有收到电子邮件

禄星腾
2023-03-14
问题内容

我已经在我的网站中使用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);
            });
        });
    }));

如果有人可以帮助我解决我的问题,那就太好了:)


问题答案:

我有同样的问题。我们有10位测试用户,所有10位用户的电子邮件地址都与他们的Facebook帐户相关联。但是对于10个测试人员之一,Facebook在配置文件响应中未返回“email” JSON属性。我不知道为什么,因为它看起来与其他工作正常的Facebook个人资料相同。

解决方法是更改​​此行:

passport.authenticate('facebook')

对此:

passport.authenticate('facebook', { scope: [ 'email' ] })

我仍然无法解释为什么它适用于9/10,但不适用于一个。无论哪种方式,现在都已修复:-)



 类似资料:
  • 我正在使用Passport Facebook身份验证。 对于一些Facebook帐户,我没有获得电子邮件id,我甚至尝试使用下面这样的范围变量,但仍然无法获得电子邮件id。 profileUrl:“”和ProfileFields:['',]

  • 我试图从我的应用程序发送电子邮件,我在android上的电子邮件客户端中看到了应有的链接,但当我检查电子邮件接收器时,没有链接。 这是我的代码: “文本”是html。 谢谢你。

  • 我一直在尝试设置AWS简单电子邮件服务,作为一种将收到的电子邮件转发到我的自定义域到我的Gmail帐户的方式,而不需要任何电子邮件托管服务。 我已经设置并验证了我的自定义域(mycustomdomain.com),还验证了它们将转发到的电子邮件地址(myemail@gmail.com)因为我仍然处于沙箱模式。 在电子邮件接收下- 没有指定收件人,我认为这应该允许为我的自定义域下的所有收件人触发此规

  • 问题内容: 我看到很多Node.js模块通过SMTP发送邮件。 但是是否有接收邮件的模块? 问题答案: 您正在寻找一个电子邮件客户端库。目前,有2个选项(如提到这里): 节点imap(IMAP) n3(POP3,实验性) 我以前从未使用过它们,但是用法非常简单(根据文档)。 node-imap 似乎是更稳定的库,并且已针对gmail进行了测试。如果您的环境中可以选择使用IMAP,那么我会坚持使用