Social Authentication mit Tornado - Benutzerzuordnung

Django, Flask, Bottle, WSGI, CGI…
Antworten
metty
User
Beiträge: 99
Registriert: Samstag 13. Dezember 2008, 19:30

Hallo zusammen,

ich bastle gerade ein wenig mit Tornado rum und habe im Moment einen Knick in meiner Denkleitung.
Ich möchte mit Tornado und Redis eine Webapplikation bauen, die für die Authentifizierung der Benutzer die in Tornado enthaltenen Authentifizierungs-Methoden (für OpenID, Google, Facebook, Twitter etc.) verwendet. Die reine Authentifizierung funktioniert problemlos, mein Problem bei der Sache ist jedoch, wie verknüpfe ich einen (extern) authentifizierten Benutzer mit dem Benutzer in meiner Datenbank? Für ein paar Denkanstöße bzw. Lösungsvorschläge habe ich mir mal das Django-Plugin Django-Socialauth angeschaut, bin aber auch nach Durchsicht des Sourcecodes zu keiner vernünftigen Lösung gekommen, da das Plugin m.E. auch Ungereimtheiten aufweist.
Beispielsweise ist die Implementierung des Logins via twitter so aufgebaut, dass die Identifizierung des (lokalen) Benutzerobjekts in der Datenbank über den Nickname, der von twitter abgerufen wird, erfolgt. Problem: Ändert der Benutzer seinen Nickname auf twitter ist eine Zuordnung in der lokalen Datenbank nicht mehr möglich und es wird ein neuer lokaler Benutzer mit dem neuen Nickname angelegt.

Außerdem ist mir auch noch ein weiteres Problem aufgefallen: Kommt der Benutzer plötzlich auf die Idee sich nicht mehr wie bisher über z.B. seinen Google-Account sondern über seinen Facebook-Account an meiner Seite anzumelden, ist eine Benutzerzuordnung ebenfalls nicht mehr problemlos möglich.
Im Endeffekt bräuchte ich eine Konstante, die bei allen Anmeldediensten (OpenID, Facebook, Twitter etc.) gleich ist. Das einzige was mir hier einigermaßen als konstant erscheint ist die EMail-Adresse, da sich diese (möglicherweise bzw. hoffentlich) nicht so häufig verändert wie z.B. ein Benutzername.

Habt ihr schon so ein Problem meistern müssen, bzw. habt einen Denkanstoß für mich?

Vielen Dank...

P.S.
Quasi als "Last-Resort" kann ich RPX-Now verwenden, aber hier gefällt mir nicht das es z.B. bei Google heißt: "Applikationsname.rpx-now.com möchte Informationen aus Ihrem Google-Konto abrufen..."
Das könnte Benutzer in die Irre führen, oder gar von einer Anmeldung abhalten, weil es irgendwie nach Datenklau aussieht, denn ich bezweifle das die wenigsten Benutzer wissen was RPX-Now ist.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

ich bin zwar nicht sicher, ob ich den Problem komplett verstanden habe, aber na ja. ;-)

Wenn jemand z.B. seinen Twitter-Nick bei Twitter ändern, kann das deine DB nicht mitbekommen - wie auch? Heißt, der Nutzer muss sein "Profil" bei dir halt auch anpassen.

Gruß, noisefloor
Antworten