2012-03-26 23 views
5

ich kann nicht eine Sache verstehen ..Wie kann ich den über Facebook API angemeldeten Benutzer identifizieren?

Auf meiner Website gibt es einen Knopf mit FB.login Methode von facebooks API JS SDK.

Wenn der Benutzer zuerst meine Website besucht, klickt auf die Schaltfläche - einige Daten von seinem Facebook-Profil abrufen, und dann überprüfen wir auf meinem Server in der Datenbank gibt es Benutzer mit dieser ID, oder nicht? Wenn nein - schreibe eine neue Zeile. Außerdem erstellen wir das Benutzerprofil auf meiner Website.

Jetzt die Frage, wann das nächste Mal der Benutzer unsere Website besucht (und auf einen Knopf klickt, wenn er nicht eingeloggt ist) - wie identifiziert man ihn mit seinem Profil auf unserer Webseite zu verbinden? Zum Beispiel, um ihm sein Profil zu zeigen, oder dass er etwas darin ändern könnte ...

In der üblichen Autorisierung vergleichen wir das Passwort und Benutzer-Login in der Datenbank, hier ist keine solche Möglichkeit. AccessToken ändert sich ständig. Denke nur die FB-ID des Benutzers, aber dann kann vielleicht jemand seine FB-ID ersetzen und in sein Profil eingeben, nicht wahr?

Welche Tricks werden in diesem Fall verwendet?

Antwort

6

Unabhängig davon, ob Nutzer besucht Ihre Website beim ersten Mal nicht immer Sie die FB.login Methode verwenden. Diese Methode wird überprüft, wenn der Nutzer eine Beziehung zu Ihrer Anwendung hat und Ihnen ein Zugriffstoken zur Verfügung stellt, wenn der Nutzer Ihre App akzeptiert hat.

Bei der Verwendung von Facebook Login zur Authentifizierung von Benutzern, die Benutzer registrieren in Ihrer Datenbank enthält kein Passwort, Sie haben nur facebookid Facebook-Konto mit dem Profil Ihrer Website zu verknüpfen. Die Facebook-ID kann unter Verwendung der von der FB.login-Methode auf der Serverseite bereitgestellten oder von javascript wie dem folgenden Beispiel von facebook docs bereitgestellten AccessStocen erhalten werden.

FB.login(function(response) { 
if (response.authResponse) { 
    console.log('Welcome! Fetching your information.... '); 
    FB.api('/me', function(response) { 
     console.log('Good to see you, ' + response.name + '.'); 
    }); 
} else { 
    console.log('User cancelled login or did not fully authorize.'); 
} 
}); 

Im Antwortobjekt können Sie die Facebook ID (response.id) erhalten.

1

Sie können die Facebook-ID verwenden, um den Benutzer in Ihrer Datenbank zu identifizieren, dies ist für jeden Facebook-Benutzer eindeutig.

+4

Kann jemand diese ID ersetzen, um in das ID-Profil dieses Benutzers auf meiner Website zu gelangen? – Denis

3

Wenn Sie die Graph API https://graph.facebook.com/me?access_token=USER_ACCESS_TOKEN abfragen, erhalten Sie die UID und vergleichen Sie dann mit Ihrer DB. Sie verwenden die JavaScript-API, daher sollten Sie die FB.getLoginStatus-Methode verwenden, um die UID für den verbundenen Benutzer abzurufen.

https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

Diese Methode wird standardmäßig ausgeführt, wenn das SDK mit FB.init (Stand: true) initialisiert wird. Es ermöglicht Ihrer Site, bereits verbundene Benutzer zu erkennen.

https://developers.facebook.com/docs/reference/javascript/FB.init/

+0

vielen Dank! :) – Denis

+0

Versuchen Sie, den Benutzer zu erkennen, indem Sie seinen Status erhalten, die UX wird stark mit personalisierten Inhalten verbessert werden. – Alexcode

Verwandte Themen