有没有可能检查一封电子邮件是否在 Facebook 上得到确认?

更新

这是在2013年12月16日通过 https://www.facebook.com/whitehat/report/向 Facebook 报告的,Facebook 在12月17日回应说 这个问题早就解决了

我重新测试了我的 Facebook 帐户(我仍然没有验证的电子邮件地址上) ,当使用 抓取 API 资源管理器工具是不可能得到这个帐户的电子邮件地址使用图形 API 或使用一个 FQL 查询。

结论: 使用 Graph API 或 FQL 查询从 Facebook 获得的电子邮件地址是经过验证的电子邮件。如果一个帐户还没有验证它的电子邮件,但它是不可能得到它。

原文

我正在制作一个网络应用程序与单点登录,提供用户登录无论是谷歌或 Facebook。我希望拥有这两种类型帐户的用户在我的系统中显示为同一个用户,而不管他们用哪个身份登录。为了实现这一点,我正在考虑使用电子邮件地址作为标识符,以了解我是否应该创建一个新帐户或用户是否已经存在。

为了不引入任何安全问题,我必须知道电子邮件地址是经过验证的,实际上是属于用户的。对于谷歌来说,Userinfo API可以告诉我一封电子邮件是否经过验证,所以这里没有问题。但是我在 Facebook Graph API里找不到这样的东西。

是否有可能知道一个电子邮件地址是否在 Facebook 上得到确认?

我知道有一个 verified字段,但这只能告诉如果帐户被验证,而不是电子邮件地址。

起初,看起来你只能使用图形应用程序接口帐户的电子邮件地址已经确认。如果地址没有得到确认,我只是得到了一个错误告诉我,我必须先确认电子邮件地址,然后才能登录到任何第三方网站。

然而,这似乎并不适用于所有的说法。在某些情况下,即使你没有确认的电子邮件地址,你也可以访问 Facebook 的所有部分。这方面的一个例子是当您使用 @ myOpera. com邮件地址注册时。

当你用@myopera.com 电子邮件地址注册 Facebook 时,只要你提交注册表格,你就会收到一条信息,说你的账户已经被暂时锁定。为了继续下去,你需要提供你的电话号码来验证你的账户,并且“保证 Facebook 的安全和远离垃圾邮件”(对不起,在截图中的瑞典人,这是在我可以进入 Facebook 并且改变语言为英语之前) :

Security check during sign up

当你提供你的电话号码时,你已经登录了,而且 Facebook 也不再唠叨你必须验证你的电子邮件地址。

你唯一可以看到你的电子邮件地址还没有被验证的地方是在设置页面:

Facebook settings view with unconfirmed email address

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

Facebook mobile settings view with unconfirmed email address

除此之外,还可以用未经证实的电子邮件地址登录到第三方网站:

Logging in to graph API explorer with an unconfirmed email address

当我连接到这个用户的 api 图形,我可以得到未确认的电子邮件地址和 verified字段返回真正的预期,因为我有 核实帐目通过添加电话号码。所以很明显,我不能相信我从 Facebook 得到的电子邮件地址真的属于拥有 Facebook 帐户的用户。

是否有任何其他方法可以知道该电子邮件地址是否经过验证,或者如果我想用它来识别用户,我必须亲自验证它吗?

20946 次浏览

我从未使用过它,但是您可以使用 user.email _ hash: http://developers.facebook.com/docs/reference/fql/user的 FQL 查询进行检查

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