是否可以检查是否在Facebook上确认了电子邮件?


67

更新资料

这是在2013年12月16日通过https://www.facebook.com/whitehat/report/向Facebook报告的,而Facebook在12月17日回应说该错误早已得到修复

我已经使用我的Facebook帐户重新测试了这一点(我仍然没有验证电子邮件地址),并且在使用Grap API Explorer工具时,无法使用Graph API或FQL查询获取该帐户的电子邮件地址。

结论:使用Graph API或FQL查询从Facebook获得的电子邮件地址是经过验证的电子邮件。如果帐户尚未验证,则为电子邮件,但无法获取。

原始帖子

我正在使用SSO制作一个网络应用程序,该应用程序为用户提供了使用Google或Facebook登录的功能。我希望同时使用这两种帐户的用户在我的系统中显示为同一用户,而不管他们使用哪个身份登录。为此,我正在考虑使用电子邮件地址作为标识符,以了解是否应该创建一个新帐户或用户是否已经存在。

为了不引入任何安全问题,我必须知道该电子邮件地址已经过验证,并且实际上属于该用户。对于Google,userinfo API可以告诉我电子邮件是否已验证,因此这里没有问题。但是我在Facebook Graph API中找不到类似的东西。

是否可以知道是否在Facebook上确认了电子邮件地址?

我知道有一个verified字段,但这仅告诉您该帐户是否已验证,而不是电子邮件地址。

首先,您似乎只能将Graph API用于已确认电子邮件地址的帐户。如果未确认地址,我会收到一个错误消息,告诉我必须先确认电子邮件地址,然后才能登录任何第三方站点。

但是,似乎并非所有帐户都是如此。在某些情况下,即使您没有确认的电子邮件地址,也可以访问Facebook的所有部分。例如,当您使用@ myopera.com邮件地址进行注册时。

当您使用@ myopera.com电子邮件地址注册Facebook时,您会收到一条消息,提示您在提交注册表单后帐户已被临时锁定。要继续,您需要提供电话号码以验证您的帐户并“保持Facebook安全和免受垃圾邮件侵扰”(对于截图中的瑞典语,很抱歉,这是在我进入Facebook并将语言更改为英语之前):

注册期间进行安全检查

提供电话号码后,您就可以登录,而Facebook不会再让您担心必须验证电子邮件地址。

您可以在设置页面上看到唯一尚未验证您的电子邮件地址的地方:

带有未确认电子邮件地址的Facebook设置视图

在确认电子邮件地址可用并列出注册期间输入的电话号码之前,通常无法访问“移动设置”:

带有未确认电子邮件地址的Facebook移动设置视图

除此之外,还可以使用未经确认的电子邮件地址登录第三方站点:

使用未确认的电子邮件地址登录到graph API Explorer

当我与此用户连接到图api时,我可以获得未确认的电子邮件地址,并且该verified字段按预期返回true,因为我已经通过添加电话号码验证了该帐户。因此,显然我无法相信我从Facebook获得的电子邮件地址确实属于拥有Facebook帐户的用户。

还有其他方法可以知道电子邮件地址是否已通过验证,或者如果我想使用它来识别用户,是否必须自己进行验证?


1
如果仅用于myopera.com,则即使Facebook图说它们“已验证”:“ true”,我们也可以将它们视为未验证。问题是还有其他免税项目,例如myopera.com吗?此外,这使人们感到奇怪,为什么Facebook对待他们有所不同?
Guya 2013年

我在类似的职位上想“合并”各种帐户。@nibarius,您是否设法提出解决方案?似乎Graph API中唯一相关的字段确实是“已验证”属性,但这似乎不是这里所需要的,因为它实际上意味着其他含义。
2013年

@guya,请确保将所有myopera.com地址视为未验证。但是正如您所说,不可能知道其他地址是否同样如此。
nibarius

1
我已将此安全漏洞报告给facebook.com/whitehat/report如果您需要再次测试,请尝试使用一个测试帐户在facebook.com/whitehat/accounts
coolaj86

11
我自己再次对其进行了测试:我首先尝试更改现有Facebook帐户的电子邮件地址,但是如果不先进行验证,就无法选择新地址作为我的主要电子邮件地址。我还尝试过使用未经验证的电子邮件地址创建一个新的Facebook帐户,并且在验证电子邮件之前根本无法“使用Facebook登录”。因此,可以,现在可以将Facebook电子邮件地址作为已验证的电子邮件地址来信任
本杰明

Answers:


6

我一直在寻找有关此问题的官方Facebook声明,最后我发现了这一点:https : //developers.facebook.com/docs/facebook-login/multiple-providers#postfb1,它明确表示开发人员不应依赖这一事实该电子邮件地址已验证。


我们在看同一页面吗?它清楚地表明您可以依靠被验证的电子邮件地址。“使用Facebook成功登录后,您将拥有该人的电子邮件地址,Facebook ID和访问令牌。您的应用应搜索使用相同电子邮件地址创建的现有帐户。如果存在,则应将两者合并帐户,并将Facebook信息添加到现有帐户中-如上文所述。”
Rok Kralj

2
请选中将手动登录信息添加到创建的Facebook登录帐户>确保已验证Facebook登录电子邮件地址,然后重新验证您的评论。
贾诺

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.