best practice für die Speicherung von oauth UND lokalen Authentifizierungs-Methoden?

Wenn ich ein Dienst ausgeführt, die Benutzer zu authentifizieren, die über den "lokalen" Benutzernamen/Passwort-Kombinationen und AUCH eine beliebige Anzahl von OAuth-Dienste - wie könnte das user-Daten-Modell Aussehen?

In der Regel, wenn ich den Umgang mit allen logins selbst, in der "user" - Datenbank (angenommen MySQL), die Felder Benutzername und Kennwort erforderlich sein würde, die als nicht-null. Aber, wenn meine Benutzer wollte nur log-in mit Facebook, würde ich nur store die Facebook auto-token, und nicht irgendeinen username/Passwort lokal.

Weiter, was ist, wenn Sie wollen, sich mit Twitter creds, und dann tumblr und was auch immer für ein service-of-the-day? Ich könnte ein Feld für jeden Typ, aber das könnte ein wenig unhandlich. Wäre ich besser dran, halten andere Tabelle "Authentifizierungsmethoden" aus Mangel an einem besseren Begriff, so konnte ich eine eins-zu-viele-Beziehung zwischen Benutzer und wie diese authentifizieren?

Im Grunde bin ich gefragt, ob jemand weiß, der ein Industrie-standard-best-practice für dieses Szenario, oder kann mir in die richtige Richtung (oder wenn jemand umgesetzt hat, so etwas wie dieses, die gut funktioniert für Sie). Ein Benutzer, der mehrere Methoden der Authentifizierung - was ist der beste Weg zu halten, dass die info?

Wenn eine der Annahmen, die ich gemacht habe sind ungültig, bitte ich zu entschuldigen, bitte korrigieren Sie mich.

  • Ich persönlich würde nicht wollen, um sich mit mehr als ein oder zwei authentifizierungsarten - versuchen zu akzeptieren und alles ist nur ein Alptraum. Wenn Ihre app bezieht sich stärker auf FB, dann ermöglichen, FB, etc. That being said... reden nur OAuth + local, würde ich denken, würden Sie implementieren Sie eine Methode, die auf Ihrem Nutzer-Klasse, so etwas wie oauthenticated? (Ich bin ruby Kerl ist), würde Ihnen sagen, ob Sie wurden zunächst lokalen-authed oder o-authed. Dann in der Authentifizierungs-code, den Sie brauchen, um zu überprüfen, und Niederlassung auf, welche Methode Sie verwendet, um Sie eingeloggt. Nach, dass, sollte es keine Rolle.
InformationsquelleAutor Hoopes | 2011-06-23
Schreibe einen Kommentar