Поставщик аутентификации с открытым исходным кодом
Добавьте в свои приложения безопасный вход в систему и управление сеансами . Доступны SDK для популярных языков и интерфейсных платформ, например Node.js, Go, Python, React.js, React Native, Vanilla JS и т. д.
Архитектура супертокенов оптимизирована для обеспечения безопасной аутентификации для ваших пользователей без ущерба для удобства пользователей и разработчиков.
Три строительных блока архитектуры SuperTokens
- Frontend SDK: управляет токенами сеанса и отображает виджеты пользовательского интерфейса входа в систему.
- Backend SDK: предоставляет API для регистрации, входа в систему, выхода из системы, обновления сеанса и т. д. Ваш интерфейс будет взаимодействовать с этими API.
- SuperTokens Core: служба HTTP для основной логики аутентификации и операций с базой данных. Эта служба используется Backend SDK.
Функции

- Беспарольный вход
- Социальный вход
- Электронная почта Пароль Войти
- Телефон Пароль Войти
- Управление сеансами
- Многофакторная аутентификация
- Поддержка нескольких арендаторов/организаций (Enterprise SSO)
- Роли пользователей
- Аутентификация микросервиса
Узнать больше
- Что такое Супертокены?
- Философия
- Возможности + Демо-приложение
- Документация
- Архитектура
- ☕ Почему Java?
- ⌨️ Панель управления пользователями
- Супертокены против других
- Сборка из исходников
- Сообщество
- ? Содействие
- Лицензия
Если вам понравился наш проект, пожалуйста? этот репозиторий! Чтобы получить обратную связь, присоединяйтесь к нашему Discord или создайте проблему в этом репозитории.
Что такое Супертокены?
SuperTokens — это открытая альтернатива проприетарным поставщикам входов, таким как Auth0 или AWS Cognito. Мы отличаемся тем, что предлагаем:
- Открытый исходный код: SuperTokens можно использовать бесплатно, навсегда, без ограничений по количеству пользователей.
- Локальное развертывание, позволяющее контролировать 100 % пользовательских данных с помощью собственной базы данных.
- Комплексное решение с входом в систему, регистрацией, управлением пользователями и сеансами без всех сложностей протоколов OAuth.
- Простота реализации и повышенная безопасность.
- Расширяемость: любой может внести свой вклад и улучшить SuperTokens!
Философия
Аутентификация напрямую влияет на UX, опыт разработки и безопасность любого приложения. Мы считаем, что текущие решения не могут оптимизировать все три «столпа», что приводит к тому, что многие приложения вручную выполняют собственную аутентификацию. Это не только приводит к проблемам с безопасностью, но и отнимает огромное количество времени.
Мы хотим изменить это: мы считаем, что единственный способ — предоставить решение, которое имеет правильный уровень абстракции, дает вам максимальный контроль, является безопасным и простым в использовании — точно так же, как если бы вы создавали его самостоятельно, с нуля (за исключением время учиться, строить и поддерживать).
Мы также верим в принцип наименьшей привязки к поставщику. Полный контроль над данными вашего пользователя означает, что вы можете отказаться от SuperTokens, не заставляя существующих пользователей выходить из системы, сбрасывать свои пароли или, в худшем случае, регистрироваться снова.
Нажмите здесь, чтобы увидеть демо-приложение.
- Пожалуйста, посетите наш сайт, чтобы увидеть список функций.
- Мы хотим сделать функции максимально разделенными. Это означает, что вы можете использовать SuperTokens только для входа в систему или просто для управления сеансом, или для того и другого. Фактически, мы также предлагаем интеграцию управления сеансами с другими поставщиками входов, такими как Auth0.
Документация
Документы можно увидеть на нашем сайте.
Дополнительную информацию о SuperTokens можно найти в разделе вики GitHub.
Архитектура
Архитектурную схему можно найти здесь.
Для получения дополнительной информации посетите наш вики-раздел GitHub.
☕ Почему Java?
- ✅ Хотя запуск Java может показаться трудным, при его распространении мы предоставляем JDK вместе с двоичным образом или образом Docker. Благодаря этому запуск SuperTokens аналогичен запуску любого другого микросервиса HTTP.
- ✅ У Java очень развитая экосистема. Это означает, что сторонние библиотеки прошли боевые испытания.
- ✅ Строгая система типов Java обеспечивает меньшее количество ошибок и упрощает сопровождение. Это особенно важно, когда над одним проектом будут работать много людей.
- ✅ Наша команда лучше всего владеет Java, и нанять отличных разработчиков Java также относительно легко.
- ✅ Одна из самых больших критических замечаний к Java — это использование памяти. У нас есть три решения этой проблемы:
- Наиболее частой операцией, связанной с аутентификацией, является проверка сеанса — это происходит внутри внутреннего SDK (node, python, Go) без контакта с ядром Java. Таким образом, один экземпляр ядра может довольно легко обслуживать несколько десятков тысяч пользователей.
- Мы тщательно выбрали наши зависимости. Например: мы используем встроенный сервер Tomcat вместо веб-фреймворка более высокого уровня.
- Мы также планируем использовать GraalVM в будущем, и это может сократить использование памяти на 95 %!
- ✅ Если вам потребуются какие-либо изменения в API аутентификации, это необходимо будет сделать на уровне внутреннего SDK (например, Node, Golang, Python...). Таким образом, вам редко придется напрямую изменять или работать с кодом Java в этом репозитории.
⌨️ Панель управления пользователями
Контролируйте своих пользователей с помощью панели управления пользователями SuperTokens.
Список пользователей
Перечислите всех пользователей, которые зарегистрировались в вашем приложении.

Управление пользователями
Управляйте пользователями, изменяя или удаляя их сеансы, метаданные, роли и информацию об учетной записи.

Супертокены против других
Подробную сравнительную таблицу вы найдете на нашем сайте.
Сборка из исходников
Пожалуйста, посетите нашу вики для получения инструкций.
Сообщество
Если вы считаете, что этот проект можно использовать в будущем, пожалуйста? этот репозиторий!
Участники (во всех репозиториях SuperTokens)
Ришаб Поддар | Адвайт Руйа | Бхумил Сарвайя | Жоэл Коутиньо |
Ракеш УП | Муфассир Кази | Неми Шах | Рохит Бхатия |
Мадху Махадеван | Айдар Нугманов | Арнав Деван | НкххкН |
ЛордЧадивала | Луис Соареш | Судипто Гош | Фабрисио20 |
металлическая обезьяна | Видхьяншу Джайн | Доменико Лучани | Энцо Батров |
Элоиза Изотье | Акос Реш | Чоту Чаудхари | Томаш Горачек |
Сэм Баух | Алексей Тылиндус | Гас Фьюн | ченкайC4 |
Марек Дуловски | Пиюш Бхутория | Эрик Доббертин | Кайл Додсон |
Ральф Лоуренс | Кристофер Капик | Ханзюсуф | Михай Лендьель |
Черино О. Лигутом III | надилас | Василе Катана | Джей Мистри |
Джейкоб Маршалл | Микетромба | Олег Вдовенко | Сиддхартх |
шуац | Йовай Буорн | Ронит Панда | Анугра Сингхал |
Джереми Истэм | Асаф Якоби | Саттвик Чакраварти | Оливье Пишон |
Сиддхант Варма | Реньиджу | Исайя Томасон | Утсав Барнвал |
Саураб Гатнекар | Алишер Айтуаров | Саймон Кильберг Уоллстрем | Ариб Хан |
Николас Дадфилд | Вопрос | Лукас Кнут | Мелвин Хиллз |
Мэтт Мюррей | Клео Реберт | Даниил Боровой | Кшиштоф Витковски |
Лехоцкий Золтан | Вирадж Канваде | Анураг Шривастава |
? Содействие
Инструкции см. в файле CONTRIBUTING.md.
Лицензия
© 2020-2023 SuperTokens Inc и ее участники. Все права защищены.
Части этого программного обеспечения лицензируются следующим образом:
- Весь контент, находящийся в каталоге «ee/» этого репозитория, если этот каталог существует, лицензируется по лицензии, определенной в «ee/LICENSE.md».
- Все сторонние компоненты, включенные в Программное обеспечение SuperTokens, лицензируются по оригинальной лицензии, предоставленной владельцем соответствующего компонента.
- Содержимое за пределами вышеупомянутых каталогов или ограничений, указанных выше, доступно по лицензии «Apache 2.0», как определено в файле уровня «LICENSE.md».