it-swarm.com.de

Kann man überprüfen, ob eine E-Mail auf Facebook bestätigt wurde?

Aktualisieren

Dies wurde Facebook am 16. Dezember 2013 über https://www.facebook.com/whitehat/report/ gemeldet, und Facebook antwortete am 17. Dezember, dass der Fehler längst behoben wurde.

Ich habe dies mit meinem Facebook-Konto erneut getestet (die E-Mail-Adresse wurde noch nicht bestätigt). Bei Verwendung des Grap API Explorer-Tool ist es nicht möglich, die E-Mail-Adresse dieses Kontos mithilfe des Diagramms abzurufen API oder Verwendung einer FQL-Abfrage.

Fazit: Die E-Mail-Adresse, die Sie mit der Graph-API oder einer FQL-Abfrage von Facebook erhalten, ist eine verifizierte E-Mail. Wenn ein Konto seine E-Mail-Adresse noch nicht bestätigt hat, ist es nicht möglich, sie zu erhalten. 

Ursprünglicher Beitrag

Ich mache eine Webanwendung mit SSO, die dem Benutzer die Anmeldung bei Google oder Facebook anbietet. Ich möchte, dass Benutzer, die über beide Kontotypen verfügen, in meinem System als derselbe Benutzer angezeigt werden, unabhängig davon, mit welcher Identität sie sich anmelden. Um dies zu erreichen, denke ich daran, die E-Mail-Adresse als Kennung zu verwenden, um zu wissen, ob ich ein neues Konto erstellen sollte oder ob der Benutzer bereits existiert.

Damit keine Sicherheitsprobleme auftreten, muss ich wissen, dass die E-Mail-Adresse verifiziert ist und tatsächlich dem Benutzer gehört. Für Google kann das Userinfo-API sagen, ob eine E-Mail bestätigt wurde oder nicht. Es gibt also kein Problem. Aber ich kann nichts dergleichen in der Facebook Graph API finden.

Kann man wissen, ob eine E-Mail-Adresse bei Facebook bestätigt wurde?

Ich weiß, dass es ein verified-Feld gibt, das aber nur sagt, ob das Konto bestätigt wurde und nicht die E-Mail-Adresse.

Zunächst sah es so aus, als könnten Sie die Graph-API nur für Konten verwenden, bei denen die E-Mail-Adresse bestätigt wurde. Wenn die Adresse nicht bestätigt wurde, wurde mir nur ein Fehler gemeldet, dass ich zuerst die E-Mail-Adresse bestätigen muss, bevor ich mich bei einer Drittanbieter-Site anmelden kann.

Dies scheint jedoch nicht für alle Konten zutreffend zu sein. In einigen Fällen ist es möglich, auf alle Teile von Facebook zuzugreifen, auch wenn Sie keine bestätigte E-Mail-Adresse haben. Ein Beispiel dafür ist, wenn Sie sich mit einer @ myopera.com Mail-Adresse anmelden.

Wenn Sie sich mit einer @ myopera.com-E-Mail-Adresse bei Facebook anmelden, erhalten Sie eine Nachricht, dass Ihr Konto vorübergehend gesperrt wurde, sobald Sie das Anmeldeformular absenden. Um fortzufahren, müssen Sie Ihre Telefonnummer angeben, um Ihr Konto zu verifizieren und "Facebook vor Spam schützen" (Entschuldigung für das Schwedisch im Screenshot. Bevor ich Facebook betreten und die Sprache in Englisch ändern konnte):

Security check during sign up

Wenn Sie Ihre Telefonnummer angeben, sind Sie angemeldet und Facebook weist Sie nicht weiter darauf hin, dass Sie Ihre E-Mail-Adresse bestätigen müssen.

Der einzige Ort, an dem Sie sehen können, dass Ihre E-Mail-Adresse noch nicht überprüft wurde, ist auf der Einstellungsseite:

Facebook settings view with unconfirmed email address

Die Handyeinstellungen, auf die normalerweise nicht zugegriffen werden kann, bevor Sie Ihre E-Mail-Adresse überprüft haben, sind verfügbar und enthalten die bei der Anmeldung eingegebene Telefonnummer.

Facebook mobile settings view with unconfirmed email address

Darüber hinaus ist es auch möglich, sich mit einer unbestätigten E-Mail-Adresse bei Websites Dritter anzumelden:

Logging in to graph API Explorer with an unconfirmed email address

Wenn ich mit diesem Benutzer eine Verbindung zur Graphik-API hergestellt habe, kann ich die unbestätigte E-Mail-Adresse abrufen. Das Feld verified gibt den Wert true zurück, da ich das Konto verifiziert durch Hinzufügen einer Telefonnummer angegeben habe. Daher kann ich natürlich nicht darauf vertrauen, dass die E-Mail-Adresse, die ich von Facebook bekomme, wirklich dem Benutzer gehört, der das Facebook-Konto besitzt.

Gibt es eine andere Möglichkeit, zu wissen, ob die E-Mail-Adresse bestätigt wurde oder nicht, oder muss ich sie selbst überprüfen, wenn ich sie zur Identifizierung des Benutzers verwenden möchte?

63
nibarius

Obwohl dies nicht die optimalste Methode ist, können Sie eine Problemumgehung versuchen, indem Sie einfach eine Suche senden und die Ergebnisse analysieren:

http://www.facebook.com/search/results.php?q=<email address here>

Sie unterliegen auch bestimmten Datenschutzeinstellungen, die Benutzer für sich selbst eingerichtet haben, sofern sie durchsuchbar sind, aber auf keine andere Art und Weise ...

3

Ich suchte nach einer offiziellen Facebook-Erklärung zu diesem Problem und fand diese schließlich: https://developers.facebook.com/docs/facebook-login/multiple-providers#postfb1 , was eindeutig besagt, dass Entwickler dies nicht tun sollten Verlassen Sie sich darauf, dass die E-Mail-Adresse überprüft wird.

0
jano

Ich habe es noch nie verwendet, aber Sie können möglicherweise mit einer FQL-Abfrage der user.email_hashes überprüfen: http://developers.facebook.com/docs/reference/fql/user

0
Johntron