Facebook Login als Ergänzung zum bestehenden Login?

8

Ich entwickle eine PHP / MySQL-E-Commerce-Website mit einigen sozialen Aspekten und versuche, sie in Facebook zu integrieren. Ich habe bereits ein natives Benutzerregistrierungs- / Session-Handling-System. Ich habe es geschafft, die iframe "Social Plugins" wie einen "Gefällt mir" Button einzubinden. Aber ich möchte den Nutzern wirklich die Möglichkeit bieten, sich über den nativen Registrierungsprozess bei Facebook zu registrieren.

Ich verstehe die Idee, ein Zugriffs-Token über das OAuth-Protokoll zu erhalten und schließlich eine Benutzer-ID zu erhalten. Meine Bedenken sind zweifach:

  1. Ist diese Methode sicher? Dies ist eine E-Commerce-Website, aber ich speichere keine Kreditkarten oder andere sensible Daten. Ich kann mir nicht vorstellen, wie das ausgenutzt werden könnte, aber ich bin nur ein Kopf!

  2. Ich verstehe, wie das ursprüngliche Token abgerufen und die Benutzer-ID während des Registrierungsvorgangs abgerufen werden kann. Aber wie erkenne ich einen Rückkehr (Sitzung) Benutzer? Muss ich das Javascript SDK dafür implementieren (etwas, das ich vermeiden möchte)? Oder behandele ich die Sitzungen genauso, wie sie bereits nativ behandelt werden, aber ersetze eine normale Benutzer-ID im Sitzungs-Cookie bei Bedarf mit einer Facebook-Benutzer-ID?

Ich entschuldige mich, wenn die Antworten offensichtlich sind. Ich habe Google und die Facebook-Dokumentation durchforstet, aber die Hälfte der Links, die ich finde, sind veraltete FBConnect-Wiki-Artikel, und die neuen Dokumente sind hilfreich, aber spärlich in den Beispielen. Ich habe keine Ahnung, was noch unterstützt wird, was neu ist und wie das geht!

    
Dave W. 24.07.2010, 18:28
quelle

1 Antwort

14
  1. Ja Oauth ist sehr sicher. Viele Anwendungen verlassen sich darauf und es gibt keine bekannten Möglichkeiten, sie zu nutzen.

  2. Eine Möglichkeit, dies zu tun, ist, die Facebook-IDs der Benutzer zu speichern. Wenn sie zurückkommen, können Sie sehen, dass ihre ID bereits in Ihren Datensätzen vorhanden ist und Sie wissen, dass es ein wiederkehrender Benutzer ist. Ihre Sitzung kann unterschiedlich sein (z. B. seit dem letzten Besuch abgelaufen), sodass Sie ihr Zugriffstoken nicht speichern möchten. aber ihre Facebook-Benutzerkennung ist immer dieselbe.

Wie ich Facebook Registrierung / Login auf meiner Seite im Grunde integriert habe, habe ich eine facebook_id Spalte in meiner Benutzertabelle und einen "Register with Facebook" Button hinzugefügt. Wenn der Benutzer klickt, sich mit Facebook authentifiziert und ich eine Sitzung abrufe und der Benutzer neu ist, leite ich auf die Registrierungsseite um, fülle so viele Felder wie möglich mit Daten von Facebook (wie ihr Name) und füge die Facebook-ID als hinzu ein verstecktes Eingabefeld Daher wird ihre facebook_id bei der Registrierung in die Datenbank eingetragen. Dies ist die gleiche Registrierungsseite wie die Standardseite. Der einzige Unterschied zu einem Benutzer ohne Facebook besteht darin, dass das Feld facebook_id leer ist. Wenn Sie möchten, können Sie auch kein Passwort für Facebook-Nutzer benötigen.

Damit sich der Benutzer anmelden kann, klickt der Benutzer einfach auf "Mit Facebook einloggen" und authentifiziert sich mit Facebook. Sobald Facebook mir die Sitzung gegeben hat, logge ich den Benutzer ein, wie auch immer der Benutzer facebook_id als den in der Facebook-Sitzung hat. Da Sie sich Sorgen um die Sicherheit machen, werde ich feststellen, dass diese Sitzung nicht gefälscht werden kann, da sie mit dem geheimen Schlüssel der Anwendung signiert ist, den nur Sie und Facebook kennen. Wenn Sie das Facebook-SDK verwenden (was Sie tun sollten), müssen Sie sich nicht um die Signatur- und Signaturüberprüfung kümmern. Die Tatsache, dass Sie zusammenhängende Informationen aus der Sitzung lesen können, bedeutet, dass das Facebook SDK dies verifiziert hat.

Diese Facebook-Seite ist ein großartiger Leitfaden für die Integration der Registrierung bei Facebook.

    
jhchen 25.07.2010, 19:02
quelle