Willkommen, Facebook-Benutzer!

Eine Web-Site, ein weiterer Benutzeraccount, noch eine Registrierung, noch ein Passwort… Da verliert sich leicht der Überblick. Oder es werden Standard-Accounts und -Passwörter verwendet, allen Sicherheitsbedenken zum Trotz.

Wie in einem der ersten Blog-Einträge beschrieben, dient geschke.name als Experimentierfeld neuer Funktionen. Diesmal handelt es sich um die Integration von Facebook Connect. Diese Funktion ermöglicht Benutzern des sozialen Netzwerks Facebook die Anmeldung auf anderen Web-Sites, ohne eine erneute Registrierung durchführen zu müssen. Bei Klick auf den Facebook Connect Button (siehe rechts unten) wird ein Popup-Fenster eingeblendet. In diesem Fenster loggt sich der Benutzer bei Facebook ein und gestattet die Datenübernahme für die Anwendung bzw. Web-Site geschke.name. Der Accountname und insbesondere das Passwort wird dabei ausschließlich an Facebook übermittelt! Die Prüfung der korrekten Anmeldung erfolgt anschließend anhand der von Facebook gesetzten Cookies. Bei der ersten Anmeldung wird implizit auf geschke.name ein neuer Benutzeraccount erzeugt. Dieser dient zur Aufnahme weiterer Informationen, welche nicht von Facebook übertragen werden können bzw. nicht zur Verfügung stehen.

Die Integration wurde mit der Facebook Connect Middleware für Django vorgenommen. Da diese nur das Login von Freunden zugelassen hat, dies aber nicht beabsichtigt war, ist jener Teil des Codes entfernt worden. Darüber hinaus erfolgte die Anpassung zum Einsatz innerhalb mehrerer Sites mit einer einzigen Installation der Anwendung. Die Änderungen auf Client-Ebene sind in der Anleitung im Facebook Developer Wiki zu finden. Die Datenbank hat ein neues Feld zur Speicherung der Herkunft des Benutzers erhalten – in dem Fall Facebook Connect oder Registrierung auf geschke.name. Dieses dient dazu, einen modifizierten Logout-Link anzubieten.

Insgesamt war die Integration, wie von Django gewohnt, vergleichsweise simpel. Auf aufwendigere Lösungen wie django-fbconnect oder django-facebookconnect wurde verzichtet, um Abhängigkeiten von weiteren Modulen oder Anwendungen zu vermeiden.

Zum Schluss darf nicht verschwiegen werden, dass noch ein paar Ungereimtheiten und kleinere Probleme existieren. Daher ist der aktuelle Zustand eher als Beta zu charakterisieren. Aber das nächste Wochenende kommt bestimmt…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Tags:
Kategorie: Programmierung