为您的应用程序添加安全登录和会话管理。适用于流行语言和前端框架的SDK ,例如 Node.js、Go、Python、React.js、React Native、Vanilla JS 等。
Supertokens 架构经过优化,可为您的用户添加安全身份验证,而不会影响用户和开发人员体验
SuperTokens 架构的三个构建块
- 前端 SDK:管理会话令牌并呈现登录 UI 小部件
- 后端 SDK:提供用于注册、登录、注销、会话刷新等 API。您的前端将与这些 API 对话
- SuperTokens Core:用于核心身份验证逻辑和数据库操作的 HTTP 服务。该服务由后端SDK使用
- 无密码登录
- 社交登录
- 邮箱 密码 登录
- 手机密码登录
- 会话管理
- 多重身份验证
- 多租户/组织支持(企业 SSO)
- 用户角色
- 微服务认证
如果您喜欢我们的项目,请🌟这个存储库!如需反馈,请随时加入我们的Discord,或在此存储库上创建问题
SuperTokens 是 Auth0 或 AWS Cognito 等专有登录提供商的开放核心替代方案。我们与众不同,因为我们提供:
- 开源:SuperTokens可以永久免费使用,用户数量没有限制。
- 本地部署,以便您使用自己的数据库控制 100% 的用户数据。
- 具有登录、注册、用户和会话管理功能的端到端解决方案,没有 OAuth 协议的所有复杂性。
- 易于实施且安全性更高。
- 可扩展性:任何人都可以做出贡献并使 SuperTokens 变得更好!
身份验证直接影响任何应用程序的用户体验、开发体验和安全性。我们认为,当前的解决方案无法针对所有三个“支柱”进行优化,导致许多应用程序手动滚动自己的 auth。这不仅会导致安全问题,而且还会浪费大量时间。
我们想要改变这一点 - 我们相信唯一的方法是提供一个具有正确抽象级别的解决方案,为您提供最大程度的控制,安全且易于使用 - 就像您自己从头开始构建它一样(减去学习、构建和维护的时间)。
我们还相信最少供应商锁定的原则。您对用户数据的完全控制意味着您可以放弃 SuperTokens,而无需强迫现有用户注销、重置密码,或者在最坏的情况下重新注册。
单击此处查看演示应用程序。
- 请访问我们的网站查看功能列表。
- 我们希望使功能尽可能解耦。这意味着您可以使用 SuperToken 仅用于登录,或仅用于会话管理,或两者兼而有之。事实上,我们还提供与其他登录提供商(如 Auth0)的会话管理集成。
GitHub wiki 部分上有有关 SuperToken 的更多信息。
请在此处找到架构图
欲了解更多信息,请访问我们的GitHub wiki 部分。
- ✅ 虽然运行 Java 看起来很困难,但我们在分发时提供了 JDK 以及二进制/docker 映像。这使得运行 SuperTokens 就像运行任何其他 HTTP 微服务一样。
- ✅ Java 拥有非常成熟的生态系统。这意味着第三方库已经过考验。
- ✅ Java 的强类型系统确保了更少的错误和更容易的可维护性。当许多人需要从事同一个项目时,这一点尤其重要。
- ✅ 我们的团队对 Java 最为熟悉,并且招聘优秀的 Java 开发人员也相对容易。
- ✅ Java 最大的批评之一是内存使用。对此我们有三种解决方案:
- 最常见的与身份验证相关的操作是会话验证 - 这发生在后端 SDK(node、python、Go)内,无需联系 Java 核心。因此,核心的单个实例可以相当轻松地处理数十甚至数千个用户。
- 我们仔细选择了我们的依赖项。例如:我们使用嵌入式 tomcat 服务器而不是更高级别的 Web 框架。
- 我们还计划将来使用GraalVM ,这可以减少 95% 的内存使用!
- ✅ 如果您需要对身份验证 API 进行任何修改,则需要在后端 SDK 级别完成这些修改(例如 Node、Golang、Python...)。因此,您很少需要直接修改/使用此存储库中的 Java 代码。
使用SuperTokens 用户管理仪表板监督您的用户
列出已注册您的应用程序的所有用户。
通过修改或删除用户的会话、元数据、角色和帐户信息来管理用户。
请在我们的网站上找到详细的比较图
请参阅我们的wiki以获取说明。
如果您认为这是一个您将来可以使用的项目,请🌟这个存储库!
茂文山
请参阅CONTRIBUTING.md文件以获取说明。
© 2020-2023 SuperTokens Inc 及其贡献者。版权所有。
本软件的部分内容按如下方式获得许可:
- 驻留在该存储库的“ee/”目录下的所有内容(如果该目录存在)均根据“ee/LICENSE.md”中定义的许可证获得许可。
- SuperTokens 软件中纳入的所有第三方组件均根据适用组件所有者提供的原始许可证获得许可。
- 上述目录或上述限制之外的内容可根据级别“LICENSE.md”文件中定义的“Apache 2.0”许可证使用