Proveedor de autenticación de código abierto
Agregue inicio de sesión seguro y administración de sesiones a sus aplicaciones. SDK disponibles para lenguajes populares y frameworks front-end, por ejemplo, Node.js, Go, Python, React.js, React Native, Vanilla JS, etc.
La arquitectura de Supertokens está optimizada para agregar autenticación segura para sus usuarios sin comprometer la experiencia del usuario y del desarrollador.
Tres bloques de construcción de la arquitectura SuperTokens
- SDK de interfaz: administra tokens de sesión y presenta widgets de interfaz de usuario de inicio de sesión
- SDK de backend: proporciona API para registrarse, iniciar sesión, cerrar sesión, actualizar sesiones, etc. Su interfaz se comunicará con estas API
- SuperTokens Core: el servicio HTTP para la lógica de autenticación central y las operaciones de la base de datos. Este servicio es utilizado por el SDK de backend.
Características
- Iniciar sesión sin contraseña
- Inicio de sesión social
- Correo electrónico Contraseña Iniciar sesión
- Teléfono Contraseña Iniciar sesión
- Gestión de sesiones
- Autenticación multifactor
- Soporte para múltiples empresas/organizaciones (SSO empresarial)
- Roles de usuario
- Autenticación de microservicio
Más información
- ¿Qué son los SuperTokens?
- Filosofía
- Funciones + Aplicación de demostración
- Documentación
- Arquitectura
- ☕ ¿Por qué Java?
- ⌨️ Panel de gestión de usuarios
- SuperTokens frente a otros
- Construyendo desde la fuente
- Comunidad
- ? Contribuyendo
- Licencia
Si te gusta nuestro proyecto, ¿por favor? este repositorio! Para recibir comentarios, no dudes en unirte a nuestro Discord o crear un problema en este repositorio.
¿Qué son los SuperTokens?
SuperTokens es una alternativa de núcleo abierto a los proveedores de inicio de sesión propietarios como Auth0 o AWS Cognito. Somos diferentes porque ofrecemos:
- Código abierto: los SuperTokens se pueden utilizar de forma gratuita, para siempre, sin límites en el número de usuarios.
- Un despliegue on-premise para que controles el 100% de tus datos de usuario, utilizando tu propia base de datos.
- Una solución de extremo a extremo con inicio de sesión, registros, administración de usuarios y sesiones, sin todas las complejidades de los protocolos OAuth.
- Facilidad de implementación y mayor seguridad.
- Extensibilidad: ¡Cualquiera puede contribuir y mejorar los SuperTokens!
Filosofía
La autenticación afecta directamente la experiencia de usuario, la experiencia de desarrollo y la seguridad de cualquier aplicación. Creemos que las soluciones actuales no pueden optimizarse para los tres "pilares", lo que lleva a que muchas aplicaciones realicen manualmente su propia autenticación. Esto no sólo genera problemas de seguridad sino que también supone una enorme pérdida de tiempo.
Queremos cambiar eso; creemos que la única manera es proporcionar una solución que tenga el nivel adecuado de abstracción, le brinde el máximo control, sea segura y fácil de usar, tal como si la construye usted mismo, desde cero (menos el tiempo para aprender, construir y mantener).
También creemos en el principio de mínima dependencia del proveedor. Tener control total de los datos de sus usuarios significa que puede abandonar SuperTokens sin obligar a sus usuarios existentes a cerrar sesión, restablecer sus contraseñas o, en el peor de los casos, registrarse nuevamente.
Haga clic aquí para ver la aplicación de demostración.
- Visite nuestro sitio web para ver la lista de funciones.
- Queremos que las funciones estén lo más desacopladas posible. Esto significa que puede usar SuperTokens solo para iniciar sesión, o simplemente para administrar la sesión, o ambas cosas. De hecho, también ofrecemos integraciones de gestión de sesiones con otros proveedores de inicio de sesión como Auth0.
Documentación
Los documentos se pueden ver en nuestro sitio web.
Hay más información sobre SuperTokens en la sección wiki de GitHub.
Arquitectura
Encuentre un diagrama de arquitectura aquí
Para obtener más información, visite nuestra sección wiki de GitHub.
☕ ¿Por qué Java?
- ✅ Si bien ejecutar Java puede parecer difícil, proporcionamos el JDK junto con la imagen binaria/docker al distribuirlo. Esto hace que ejecutar SuperTokens sea como ejecutar cualquier otro microservicio HTTP.
- ✅ Java tiene un ecosistema muy maduro. Esto implica que las bibliotecas de terceros han sido probadas en batalla.
- ✅ El sólido sistema de tipos de Java garantiza menos errores y un mantenimiento más sencillo. Esto es especialmente importante cuando se espera que muchas personas trabajen en el mismo proyecto.
- ✅ Nuestro equipo se siente más cómodo con Java y contratar excelentes desarrolladores de Java también es relativamente fácil.
- ✅ Una de las mayores críticas a Java es el uso de memoria. Tenemos tres soluciones para esto:
- La operación relacionada con la autenticación más frecuente es la verificación de la sesión; esto ocurre dentro del SDK backend (nodo, python, Go) sin contactar el núcleo de Java. Por lo tanto, una sola instancia del núcleo puede manejar decenas de miles de usuarios con bastante facilidad.
- Hemos elegido cuidadosamente nuestras dependencias. Por ejemplo: utilizamos un servidor Tomcat integrado en lugar de un marco web de nivel superior.
- ¡También planeamos usar GraalVM en el futuro y esto puede reducir el uso de memoria en un 95%!
- ✅ Si necesita alguna modificación en las API de autenticación, deberá realizarse en el nivel del SDK de backend (por ejemplo, Node, Golang, Python...). Por lo tanto, rara vez necesitará modificar/trabajar directamente con el código Java en este repositorio.
⌨️ Panel de gestión de usuarios
Supervise a sus usuarios con el Panel de administración de usuarios de SuperTokens
Listar usuarios
Enumere todos los usuarios que se han registrado en su aplicación.
Administrar usuarios
Administre usuarios modificando o eliminando sus sesiones, metadatos, roles e información de cuenta.
SuperTokens frente a otros
Encuentre un cuadro comparativo detallado en nuestro sitio web
Construyendo desde la fuente
Consulte nuestra wiki para obtener instrucciones.
Comunidad
- Discordia
- Correo electrónico
Si cree que este es un proyecto que podría utilizar en el futuro, ¿por favor? este repositorio!
Colaboradores (en todos los repositorios de SuperTokens)
Rishabh Poddar | Advait Ruia | Bhumil Sarvaiya | Joel Coutinho |
Rakesh arriba | Mufassir Kazi | Nemi Shah | Rohit Bhatia |
Madhu Mahadevan | Aidar Nugmanoff | Arnav Dewan | NkxxkN |
SeñorChadiwala | Luis Soares | Sudipto Ghosh | fabricio20 |
mono metálico | Vidhyanshu Jain | Domenico Luciani | Enzo Bátrov |
Eloïse Isautier | Ákos Resch | Chotu Chaudhary | Tomaš Horáček |
Sam Bauch | Alexey Tylindus | Gus Fune | chenkaiC4 |
Marek Dulowski | Piyushh Bhutoria | Eric Dobbertin | Kyle Dodson |
Ralph Lorenzo | Christopher Kapic | Hanzyusuf | Mihály Lengyel |
Cerino O. Ligutom III | nadilas | Vasile Cataña | Jay Mistry |
Jacob Marshall | miketromba | Oleg Vdovenko | Siddharth |
xuatz | Yoway Buorn | Panda Ronit | Anugrah Singhal |
Jeremy Eastham | Assaf Yacobi | Chakravarthy sátvico | Olivier Pichón |
Siddhant Varma | renyjiu | Isaías Thomason | Utsav Barnwal |
Saurabh Ghatnekar | Alisher Aituarov | Simon Kihlberg Wallström | Areeb Khan |
nicolas dudfield | Qdea | Lucas Knuth | colinas de melvyn |
Matt Murray | Cleo Rebert | Daniil Borovoy | Krzysztof Witkowski |
Lehoczky Zoltán | Viraj Kanwade | Anurag Srivastava |
? Contribuyendo
Consulte el archivo CONTRIBUTING.md para obtener instrucciones.
Licencia
© 2020-2023 SuperTokens Inc y sus colaboradores. Reservados todos los derechos.
Algunas partes de este software tienen licencia de la siguiente manera:
- Todo el contenido que reside en el directorio "ee/" de este repositorio, si ese directorio existe, tiene la licencia definida en "ee/LICENSE.md".
- Todos los componentes de terceros incorporados al software SuperTokens tienen la licencia original proporcionada por el propietario del componente correspondiente.
- El contenido fuera de los directorios o restricciones mencionados anteriormente está disponible bajo la licencia "Apache 2.0" tal como se define en el archivo de nivel "LICENSE.md".