2009-08-24 15 views
1

Ich entwickle momentan mehrere Apps, die ein globales Accountsystem für alle Apps erfordern und ich bin mir nicht sicher, wie ich das am besten umsetzen kann.Wie erstelle ich ein System für globale Konten, das für mehrere Apps verwendet werden kann?

Die naheliegendste Option ist es, jede App mit einer Datenbank verbinden zu lassen, aber dafür müsste der MVC-Login-Code in allen Apps dupliziert werden, was die Aktualisierung des Systems etwas erschweren würde.

Vielleicht das Login-System in eine eigene App aufteilen und jede App über eine API authentifizieren lassen?

Irgendwelche Ideen werden geschätzt. Danke!

Antwort

4

Auch wenn Sie die Anmeldung in eine separate App aufteilen, haben Sie immer noch doppelten Login-Code, da die Formulare und die Controller, die die API verwenden, dupliziert werden müssen. Es sei denn, Sie verwenden eine allgemeine Bibliothek, um allgemeine Funktionen zu kapseln. Dann brauchst du mehr Features, Schnickschnack. Wenn du lange genug auf diesem Pfad gehst, wirst du einfach dein eigenes Quadratrad umsetzen :)

Stattdessen kannst du einfach etwas verwenden, das die Leute schon gebaut haben.

Bei weitem der einfachste Weg wäre, all diese Sachen komplett zu entfernen und nur Openid zu unterstützen. Genau wie stackoverflow. Gebündelt mit einer cleveren Openid-from-Provider-und-Usern-Generation (wieder wie Stackoverflow) kann dies fast jeden aufnehmen, dachte, dass dies etwas mehr Arbeit benötigt (aber nicht viel, die Regeln der Generierung sollten sehr trivial sein).

Wenn Sie wirklich das Standard Benutzer/Passwort Login Formular benötigen und nur zentrale Benutzer db wollen, können Sie openid hinter den Kulissen verwenden (siehe ruby-openid für Client und Server Teile Implementierung), oder einfach eine einfachere CAS Lösung (wie ruby-cas)

1

Am besten verwenden Sie ein bewährtes Authentifizierungssystem wie LDAP. Sie können Authlogic als Basis-Authentifizierungssystem mit dem Authlogic LDAP Addon Plugin verwenden.

Wenn Sie ein Beispiel wie Authlogic funktioniert, können Sie eine here sehen.

2

Die Option rubycas-server ist eine weitere Option, mit der Sie eine Seite mit nur einem Zeichen verwenden können, mit der Benutzer in mehreren Apps authentifiziert werden.

Verwandte Themen