Open-Source-Authentifizierungsanbieter
Fügen Sie Ihren Apps eine sichere Anmeldung und Sitzungsverwaltung hinzu. SDKs verfügbar für gängige Sprachen und Front-End-Frameworks, z. B. Node.js, Go, Python, React.js, React Native, Vanilla JS usw.
Die Supertokens-Architektur ist optimiert, um Ihren Benutzern eine sichere Authentifizierung zu bieten, ohne die Benutzer- und Entwicklererfahrung zu beeinträchtigen
Drei Bausteine der SuperTokens-Architektur
- Frontend-SDK: Verwaltet Sitzungstoken und rendert Anmelde-UI-Widgets
- Backend-SDK: Stellt APIs für die Anmeldung, Anmeldung, Abmeldung, Sitzungsaktualisierung usw. bereit. Ihr Frontend kommuniziert mit diesen APIs
- SuperTokens Core: Der HTTP-Dienst für die Kernauthentifizierungslogik und Datenbankoperationen. Dieser Dienst wird vom Backend SDK verwendet
Merkmale
- Passwortlose Anmeldung
- Soziales Login
- E-Mail-Passwort-Anmeldung
- Anmeldung mit Telefonpasswort
- Sitzungsverwaltung
- Multi-Faktor-Authentifizierung
- Multi-Tenancy-/Organisationsunterstützung (Enterprise SSO)
- Benutzerrollen
- Microservice-Authentifizierung
Erfahren Sie mehr
- Was sind SuperTokens?
- Philosophie
- Funktionen + Demo-App
- Dokumentation
- Architektur
- ☕ Warum Java?
- ⌨️ Benutzerverwaltungs-Dashboard
- SuperTokens im Vergleich zu anderen
- Bauen aus der Quelle
- Gemeinschaft
- ?Mitwirken
- Lizenz
Wenn Ihnen unser Projekt gefällt, bitte? dieses Repository! Für Feedback können Sie gerne unserem Discord beitreten oder ein Problem in diesem Repo erstellen
Was sind SuperTokens?
SuperTokens ist eine Open-Core-Alternative zu proprietären Anmeldeanbietern wie Auth0 oder AWS Cognito. Wir sind anders, weil wir Folgendes bieten:
- Open Source: SuperTokens können für immer kostenlos und ohne Begrenzung der Benutzerzahl genutzt werden.
- Eine Bereitstellung vor Ort, sodass Sie mithilfe Ihrer eigenen Datenbank 100 % Ihrer Benutzerdaten kontrollieren können.
- Eine End-to-End-Lösung mit Anmeldung, Anmeldungen, Benutzer- und Sitzungsverwaltung, ohne die Komplexität von OAuth-Protokollen.
- Einfache Implementierung und höhere Sicherheit.
- Erweiterbarkeit: Jeder kann dazu beitragen und SuperTokens besser machen!
Philosophie
Die Authentifizierung wirkt sich direkt auf die UX, das Entwicklungserlebnis und die Sicherheit jeder App aus. Wir glauben, dass aktuelle Lösungen nicht für alle drei „Säulen“ optimiert werden können, was dazu führt, dass viele Anwendungen ihre eigene Authentifizierung manuell durchführen. Dies führt nicht nur zu Sicherheitsproblemen, sondern ist auch ein enormer Zeitaufwand.
Wir möchten das ändern – wir glauben, dass der einzige Weg darin besteht, eine Lösung bereitzustellen, die über das richtige Abstraktionsniveau verfügt, Ihnen maximale Kontrolle bietet, sicher und einfach zu verwenden ist – genau so, als ob Sie sie selbst erstellen würden, von Grund auf (abzüglich der Zeit zum Lernen, Aufbauen und Warten).
Wir glauben auch an das Prinzip der geringsten Anbieterbindung. Da Sie die volle Kontrolle über die Daten Ihrer Benutzer haben, können Sie von SuperTokens wechseln, ohne Ihre bestehenden Benutzer dazu zu zwingen, sich abzumelden, ihre Passwörter zurückzusetzen oder sich im schlimmsten Fall erneut anzumelden.
Klicken Sie hier, um die Demo-App anzusehen.
- Bitte besuchen Sie unsere Website, um die Liste der Funktionen anzuzeigen.
- Wir möchten Funktionen so entkoppelt wie möglich gestalten. Das bedeutet, dass Sie SuperTokens nur für die Anmeldung oder nur für die Sitzungsverwaltung oder beides verwenden können. Tatsächlich bieten wir auch Integrationen zur Sitzungsverwaltung mit anderen Anmeldeanbietern wie Auth0 an.
Dokumentation
Die Dokumente können auf unserer Website eingesehen werden.
Weitere Informationen zu SuperTokens finden Sie im GitHub-Wiki-Bereich.
Architektur
Ein Architekturdiagramm finden Sie hier
Weitere Informationen finden Sie in unserem GitHub-Wiki-Bereich.
☕ Warum Java?
- ✅ Während die Ausführung von Java schwierig erscheinen kann, stellen wir das JDK zusammen mit dem Binär-/Docker-Image bereit, wenn wir es verteilen. Dies ermöglicht die Ausführung von SuperTokens wie die Ausführung jedes anderen HTTP-Mikrodienstes.
- ✅ Java verfügt über ein sehr ausgereiftes Ökosystem. Dies bedeutet, dass die Bibliotheken von Drittanbietern kampferprobt sind.
- ✅ Das starke Java-Typsystem sorgt für weniger Fehler und eine einfachere Wartbarkeit. Dies ist besonders wichtig, wenn viele Personen an demselben Projekt arbeiten sollen.
- ✅ Unser Team ist mit Java am besten vertraut und auch die Einstellung großartiger Java-Entwickler ist relativ einfach.
- ✅ Einer der größten Kritikpunkte an Java ist die Speichernutzung. Dafür haben wir drei Lösungen:
- Der häufigste authentifizierungsbezogene Vorgang ist die Sitzungsüberprüfung – diese erfolgt innerhalb des Backend-SDK (Knoten, Python, Go), ohne Kontakt zum Java-Kern aufzunehmen. Daher kann eine einzelne Instanz des Kerns relativ problemlos mehrere Zehntausend Benutzer verwalten.
- Wir haben unsere Abhängigkeiten sorgfältig ausgewählt. Zum Beispiel: Wir verwenden einen eingebetteten Tomcat-Server anstelle eines übergeordneten Webframeworks.
- Wir planen auch, in Zukunft GraalVM zu verwenden, und dies kann die Speichernutzung um 95 % reduzieren!
- ✅ Wenn Sie Änderungen an den Authentifizierungs-APIs benötigen, müssen diese auf der Backend-SDK-Ebene vorgenommen werden (z. B. Node, Golang, Python...). Daher müssen Sie den Java-Code in diesem Repo selten direkt ändern/mit ihm arbeiten.
⌨️ Benutzerverwaltungs-Dashboard
Überwachen Sie Ihre Benutzer mit dem SuperTokens User Management Dashboard
Benutzer auflisten
Listen Sie alle Benutzer auf, die sich für Ihre Anwendung angemeldet haben.
Benutzer verwalten
Verwalten Sie Benutzer, indem Sie ihre Sitzungen, Metadaten, Rollen und Kontoinformationen ändern oder löschen.
SuperTokens im Vergleich zu anderen
Eine detaillierte Vergleichstabelle finden Sie auf unserer Website
Bauen aus der Quelle
Anweisungen finden Sie in unserem Wiki.
Gemeinschaft
Wenn Sie glauben, dass dies ein Projekt ist, das Sie in Zukunft nutzen könnten, bitte? dieses Repository!
Mitwirkende (in allen SuperTokens-Repositorys)
Rishabh Poddar | Advait Ruia | Bhumil Sarvaiya | Joel Coutinho |
Rakesh UP | Mufassir Kazi | Nemi Shah | Rohit Bhatia |
Madhu Mahadevan | Aidar Nugmanoff | Arnav Dewan | NkxxkN |
LordChadiwala | Luiz Soares | Sudipto Ghosh | Fabricio20 |
metallischer Affe | Vidhyanshu Jain | Domenico Luciani | Enzo Batrov |
Eloïse Isautier | Ákos Resch | Chotu Chaudhary | Tomáš Horáček |
Sam Bauch | Alexey Tylindus | Gus Fune | chenkaiC4 |
Marek Dulowski | Piyushh Bhutoria | Eric Dobbertin | Kyle Dodson |
Ralph Lawrence | Christopher Kapic | Hanzyusuf | Mihály Lengyel |
Cerino O. Ligutom III | Nadilas | Vasile Catana | Jay Mistry |
Jacob Marshall | Miketromba | Oleg Wdowenko | Siddharth |
xuatz | Yoway Buorn | Ronit Panda | Anugrah Singhal |
Jeremy Eastham | Assaf Yacobi | Sattvik Chakravarthy | Olivier Pichon |
Siddhant Varma | renyijiu | Isaiah Thomason | Utsav Barnwal |
Saurabh Ghatnekar | Alisher Aituarov | Simon Kihlberg Wallstrom | Areeb Khan |
Nicholas Dudfield | Qdea | Lukas Knuth | Melvyn Hills |
Matt Murray | Cléo Rebert | Daniil Borovoy | Krzysztof Witkowski |
Lehoczky Zoltán | Viraj Kanwade | Anurag Srivastava |
?Mitwirken
Anweisungen finden Sie in der Datei CONTRIBUTING.md.
Lizenz
© 2020-2023 SuperTokens Inc und seine Mitwirkenden. Alle Rechte vorbehalten.
Teile dieser Software werden wie folgt lizenziert:
- Alle Inhalte, die sich im Verzeichnis „ee/“ dieses Repositorys befinden, sofern dieses Verzeichnis vorhanden ist, werden unter der in „ee/LICENSE.md“ definierten Lizenz lizenziert.
- Alle in die SuperTokens-Software integrierten Komponenten von Drittanbietern werden unter der Originallizenz lizenziert, die vom Eigentümer der jeweiligen Komponente bereitgestellt wird.
- Inhalte außerhalb der oben genannten Verzeichnisse oder Einschränkungen sind unter der „Apache 2.0“-Lizenz verfügbar, wie in der Level-Datei „LICENSE.md“ definiert