Sie haben völlig Recht. AFAIK gibt es kein "generisches" Paket, das diese Flüsse implementiert. Ich habe vor einiger Zeit viel nach dieser Art von Code gesucht und nichts gefunden. Ich denke, dass @luizcarlosfx hat Recht, dass jede Anwendung ihre eigenen Bedürfnisse hat, deshalb ist es schwer, etwas Generisches zu schreiben, das allen Bedürfnissen entspricht.
EDIT: ich Kommentare sah wie "Es ist nicht so schwierig zu implementieren". Wahr. Aber Sie müssen sicherstellen, dass Sie sich um alle Fälle kümmern. Was passiert beispielsweise, wenn ein Benutzer versucht, ein Konto zu erstellen, das bereits existiert? Was passiert, wenn ein Benutzer versucht, ein Konto zu erstellen, das bereits existiert aber inaktiv? Was ist mit der Politik des Passwortes? (zu lang/zu kurz/wie viel Kapital usw.) Was ist mit dem Senden der E-Mail mit dem Aktivierungslink an den Benutzer? Wie schaffst du diesen Link? Wie verschlüsseln Sie es? Was ist mit dem Controller, der den Klick auf den Link erhält und den Account aktiviert? und mehr und mehr ...
jedoch, nahm ich es einen Schritt nach vorn und versuchte, etwas zu codieren, dass die meisten Strömungen beantworten - Registrierung, Passwort-Passwort, Passwort ändern usw., und etwas, das sein wird, Sicher genug, damit Anwendungen es ohne die Angst, dass es leicht gehackt werden kann, verwenden können.
Ich habe ein JAVA-Projekt für diesen Anwendungsfall implementiert. Es ist Open Source, basierend auf Spring-Security. Eine Release-Version ist auf Maven-Central, also müssen Sie es nicht kompilieren, sondern können es als Maven-Abhängigkeit zu Ihrem Projekt holen!
<dependency>
<groupId>com.ohadr</groupId>
<artifactId>authentication-flows</artifactId>
<version>1.5.0-RELEASE</version>
</dependency>
Ich denke, es ist Ihre Frage beantwortet ...
Es gibt Erklärungen für alles (und wenn etwas fehlt - lassen Sie mich ... wissen)
Sie können find here ein Beispiel für eine Client-Anwendung Code (dh die Verwendung).
Dies ist die plus eine Demo, und another demo is here (aber das ist eine App, die nach dem Upgrade auf Version 1.6.1 erfordert Anmeldung mit E-Mail mit "nice" Domain - nice.com. So können Sie es nicht wirklich für Demo verwenden ; benutze das erste Beispiel). Dies ist eine Client-Web-App, die die Auth-Flüsse verwendet, mit der README mit allen Erklärungen.
Hoffe, dass hilft!
Ich denke, die Antwort ist nein. Da es sich bei diesen Aktionen nicht um generische Aktionen handelt, unterscheiden sie sich von Anwendung zu Anwendung. Wie weiß der Frühling, welche Felder in Ihrem Anmeldeformular benötigt werden? oder wie möchten Sie das Passwort wiederherstellen? (per E-Mail. SMS, etc ..) – luizcarlosfx
Ich verstehe; aber ich dachte, vielleicht gibt es etwas Generisches, das anpassbar und erweiterbar ist (wie alle anderen Spring-Projekte ...) – user3619976
Es ist nicht so schwierig zu implementieren. Konto erstellen ist ein grundlegendes Formular. Ich habe beide 2 in meinem Projekt implementiert und hatte keine Schwierigkeiten. Um das Passwort wiederherzustellen, schicke ich eine E-Mail an den Benutzer mit einer uniqueId (http://java.sun.com/javase/6/docs/api/java/util/UUID.html) und ich habe einen Controller, der diese ID überprüft und Wenn es gültig ist (in meiner user_request-Tabelle gespeichert), leite ich den Benutzer auf eine Seite weiter, auf der er ein neues Passwort definieren wird, da das ursprüngliche Passwort verschlüsselt ist. – luizcarlosfx