Fournisseur d'authentification open source
Ajoutez une connexion sécurisée et une gestion de session à vos applications. SDK disponibles pour les langages et frameworks front-end populaires, par exemple Node.js, Go, Python, React.js, React Native, Vanilla JS, etc.
L'architecture des Supertokens est optimisée pour ajouter une authentification sécurisée pour vos utilisateurs sans compromettre l'expérience utilisateur et développeur.
Trois éléments constitutifs de l'architecture des SuperTokens
- SDK Frontend : gère les jetons de session et restitue les widgets de l'interface utilisateur de connexion
- SDK Backend : fournit des API pour l'inscription, la connexion, la déconnexion, l'actualisation de session, etc. Votre Frontend communiquera avec ces API
- SuperTokens Core : le service HTTP pour la logique d'authentification principale et les opérations de base de données. Ce service est utilisé par le SDK Backend
Caractéristiques
- Connexion sans mot de passe
- Connexion sociale
- Connexion par e-mail avec mot de passe
- Connexion par mot de passe du téléphone
- Gestion des sessions
- Authentification multifacteur
- Multi-location/Support organisationnel (Enterprise SSO)
- Rôles des utilisateurs
- Authentification des microservices
Apprendre encore plus
- Qu’est-ce que les SuperTokens ?
- Philosophie
- Fonctionnalités + application de démonstration
- Documentation
- Architecture
- ☕ Pourquoi Java ?
- ⌨️ Tableau de bord de gestion des utilisateurs
- SuperTokens vs autres
- Construire à partir de la source
- Communauté
- ? Contribuer
- Licence
Si vous aimez notre projet, s'il vous plaît ? ce référentiel ! Pour des commentaires, n'hésitez pas à rejoindre notre Discord ou à créer un problème sur ce dépôt
Qu’est-ce que les SuperTokens ?
SuperTokens est une alternative ouverte aux fournisseurs de connexion propriétaires comme Auth0 ou AWS Cognito. Nous sommes différents car nous proposons :
- Open source : les SuperTokens peuvent être utilisés gratuitement, pour toujours, sans limite de nombre d'utilisateurs.
- Un déploiement sur site pour que vous contrôliez 100 % de vos données utilisateur, en utilisant votre propre base de données.
- Une solution de bout en bout avec connexion, inscriptions, gestion des utilisateurs et des sessions, sans toutes les complexités des protocoles OAuth.
- Facilité de mise en œuvre et sécurité accrue.
- Extensibilité : n'importe qui peut contribuer et améliorer les SuperTokens !
Philosophie
L'authentification affecte directement l'UX, l'expérience de développement et la sécurité de n'importe quelle application. Nous pensons que les solutions actuelles ne peuvent pas optimiser les trois « piliers », ce qui conduit de nombreuses applications à créer manuellement leur propre authentification. Cela entraîne non seulement des problèmes de sécurité, mais représente également une perte de temps considérable.
Nous voulons changer cela - nous pensons que le seul moyen est de fournir une solution qui a le bon niveau d'abstraction, vous donne un contrôle maximum, est sécurisée et est simple à utiliser - tout comme si vous la construisiez vous-même, à partir de zéro (moins le temps pour apprendre, construire et entretenir).
Nous croyons également au principe du moindre blocage vis-à-vis du fournisseur. Le fait d'avoir un contrôle total sur les données de vos utilisateurs signifie que vous pouvez abandonner les SuperTokens sans forcer vos utilisateurs existants à se déconnecter, à réinitialiser leurs mots de passe ou, dans le pire des cas, à se réinscrire.
Cliquez ici pour voir l'application de démonstration.
- Veuillez visiter notre site Web pour voir la liste des fonctionnalités.
- Nous voulons rendre les fonctionnalités aussi découplées que possible. Cela signifie que vous pouvez utiliser les SuperTokens uniquement pour vous connecter, ou simplement pour la gestion de session, ou les deux. En fait, nous proposons également des intégrations de gestion de session avec d'autres fournisseurs de connexion comme Auth0.
Documentation
Les documents peuvent être consultés sur notre site Web.
Vous trouverez plus d'informations sur les SuperTokens dans la section wiki GitHub.
Architecture
Veuillez trouver un schéma d'architecture ici
Pour plus d’informations, veuillez visiter notre section wiki GitHub.
☕ Pourquoi Java ?
- ✅ Bien qu'exécuter Java puisse sembler difficile, nous fournissons le JDK ainsi que l'image binaire/docker lors de sa distribution. Cela rend l'exécution de SuperTokens comme l'exécution de n'importe quel autre microservice HTTP.
- ✅ Java possède un écosystème très mature. Cela implique que les bibliothèques tierces ont été testées au combat.
- ✅ Le système de type puissant de Java garantit moins de bogues et une maintenabilité plus facile. Ceci est particulièrement important lorsque de nombreuses personnes doivent travailler sur le même projet.
- ✅ Notre équipe est plus à l'aise avec Java et embaucher d'excellents développeurs Java est également relativement facile.
- ✅ L'une des plus grandes critiques de Java est l'utilisation de la mémoire. Nous avons trois solutions à cela :
- L'opération liée à l'authentification la plus fréquente est la vérification de session - cela se produit dans le SDK backend (nœud, python, Go) sans contacter le noyau Java. Par conséquent, une seule instance du noyau peut gérer assez facilement plusieurs dizaines de milliers d’utilisateurs.
- Nous avons soigneusement choisi nos dépendances. Par exemple : nous utilisons un serveur Tomcat intégré au lieu d'un framework Web de niveau supérieur.
- Nous prévoyons également d'utiliser GraalVM à l'avenir, ce qui peut réduire l'utilisation de la mémoire de 95 % !
- ✅ Si vous avez besoin de modifications des API d'authentification, celles-ci devront être effectuées au niveau du SDK backend (par exemple Node, Golang, Python...). Vous auriez donc rarement besoin de modifier/travailler directement avec le code Java dans ce référentiel.
⌨️ Tableau de bord de gestion des utilisateurs
Supervisez vos utilisateurs avec le tableau de bord de gestion des utilisateurs SuperTokens
Liste des utilisateurs
Répertoriez tous les utilisateurs qui se sont inscrits à votre application.
Gérer les utilisateurs
Gérez les utilisateurs en modifiant ou en supprimant leurs sessions, métadonnées, rôles et informations de compte.
SuperTokens vs autres
Veuillez trouver un tableau comparatif détaillé sur notre site Web
Construire à partir de la source
Veuillez consulter notre wiki pour obtenir des instructions.
Communauté
Si vous pensez que c'est un projet que vous pourriez utiliser à l'avenir, s'il vous plaît ? ce référentiel !
Contributeurs (dans tous les référentiels SuperTokens)
Rishabh Poddar | Advait Ruia | Bhumil Sarvaiya | Joël Coutinho |
Rakesh UP | Mufassir Kazi | Nemi Shah | Rohit Bhatia |
Madhu Mahadevan | Aïdar Nugmanoff | Arnav Dewan | NkxxkN |
SeigneurChadiwala | Luis Soares | Sudipto Ghosh | Fabricio20 |
singe métallique | Vidhyanshu Jain | Dominique Luciani | Enzo Batrov |
Éloïse Isautier | Ákos Resch | Chotu Chaudhary | Tomas Horacek |
Sam Bauch | Alexeï Tylindus | Gus Fune | chenkaiC4 |
Marek Dulowski | Piyushh Bhutoria | Éric Dobbertin | Kyle Dodson |
Ralph Laurent | Christophe Kapic | Hanzyusuf | Mihály Lengyel |
Cerino O. Ligutom III | nadilas | Vasile Catana | Jay Mistry |
Jacob Marshall | miketromba | Oleg Vdovenko | Siddharth |
Xuatz | Yoway Buorn | Ronit Panda | Anugrah Singhal |
Jérémie Eastham | Assaf Yacobi | Chakravarthy Sattvik | Olivier Pichon |
Siddhant Varma | renyijiu | Isaïe Thomason | Utsav Barnwal |
Saurabh Ghatnekar | Alisher Aituarov | Simon Kihlberg Wallström | Areeb Khan |
Nicolas Dudfield | Qdea | Lucas Knuth | Collines Melvyn |
Matt Murray | Cléo Rébert | Daniel Borovoy | Krzysztof Witkowski |
Lehoczky Zoltán | Viraj Kanwade | Anurag Srivastava |
? Contribuer
Veuillez consulter le fichier CONTRIBUTING.md pour obtenir des instructions.
Licence
© 2020-2023 SuperTokens Inc et ses contributeurs. Tous droits réservés.
Certaines parties de ce logiciel sont sous licence comme suit :
- Tout le contenu qui réside dans le répertoire « ee/ » de ce référentiel, si ce répertoire existe, est sous licence définie dans « ee/LICENSE.md ».
- Tous les composants tiers incorporés dans le logiciel SuperTokens sont concédés sous licence sous la licence originale fournie par le propriétaire du composant applicable.
- Le contenu en dehors des répertoires ou restrictions mentionnés ci-dessus est disponible sous la licence "Apache 2.0" telle que définie dans le fichier de niveau "LICENSE.md".