javascript - 我无法从我网站上的 facebook 登录获取电子邮件范围

标签 javascript node.js facebook email passport.js

我用了this code 。我填写了所有内容,ID、Secret、回调 url 和本地数据库。

我将 Facebook 应用程序上的网址设置为“http://localhost:3000/”,对于网站的网址,我尝试了“http://localhost:3000/”和“http://localhost:3000/auth/facebook/callback

此外,我还将应用程序上的端口从 8080 更改为 3000 以匹配它。

每当我单击登录时,服务器就会崩溃,告诉我 Mongoose 的 Node 模块中的某个地方存在 Uncaught Error ,并且它无法“读取未定义的属性0”,所以我认为如果有的话就会发生这种情况没有访问电子邮件范围的权限(因为它确实 newUser.facebook.email = profile.emails[0].value;),所以我尝试注释掉该行。

注释掉该行后,服务器在登录时不会再崩溃,并且当我重定向到个人资料页面时,我得到了 token 、ID 和 displayName。

因此,如果我不请求电子邮件,登录就可以工作,但是当我添加该行代码来请求电子邮件时,它就会崩溃。

我请求的“电子邮件”范围如下:

app.get("/auth/facebook", passport.authenticate("facebook", {scope: ["email"]}));

我搜索了之前的问题,但找不到我要找的内容。我能做些什么?

最佳答案

read property 0 of undefined for profile.emails[0].value 表示 profile 没有名为 的属性电子邮件

我假设,因为它是单个配置文件,所以它是电子邮件而不是电子邮件。此外,它可以是一封电子邮件,而不是一组电子邮件。

您可以打印profile对象并检查它具有哪些属性。然后使用您需要的正确属性。

关于javascript - 我无法从我网站上的 facebook 登录获取电子邮件范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42357465/

相关文章:

javascript - 如何在创建的博客文章上向用户发送 Facebook 通知?

javascript - Facebook "zoom in"时,聊天侧边栏被 Conceal ,但如何?

javascript - 听物体点击

javascript - 纯 HTML 与 React。相同的内容呈现不均。为什么?

javascript - 防止在输入文本框中输入重复的逗号

javascript - 如何多次替换数组元素?

javascript - 使用 JavaScript 更改一组元素的样式

mysql - 远程连接到 Aurora Serverless

javascript - Azure:通过主体 ID 获取用户电子邮件

ios - 获取游戏请求ID/获取Facebook游戏请求通知内容