오픈소스 인증 제공업체
앱에 보안 로그인 및 세션 관리를 추가하세요. Node.js, Go, Python, React.js, React Native, Vanilla JS 등 널리 사용되는 언어 및 프런트엔드 프레임워크에 사용 가능한 SDK
Supertokens 아키텍처는 사용자 및 개발자 경험을 저하시키지 않고 사용자를 위한 보안 인증을 추가하도록 최적화되었습니다.
SuperTokens 아키텍처의 세 가지 구성 요소
- Frontend SDK: 세션 토큰을 관리하고 로그인 UI 위젯을 렌더링합니다.
- 백엔드 SDK: 가입, 로그인, 로그아웃, 세션 새로 고침 등을 위한 API를 제공합니다. 프런트엔드는 이러한 API와 통신합니다.
- SuperTokens Core: 핵심 인증 논리 및 데이터베이스 작업을 위한 HTTP 서비스입니다. 이 서비스는 백엔드 SDK에서 사용됩니다.
특징
- 비밀번호 없는 로그인
- 소셜 로그인
- 이메일 비밀번호 로그인
- 전화 비밀번호 로그인
- 세션 관리
- 다단계 인증
- 멀티 테넌시/조직 지원(엔터프라이즈 SSO)
- 사용자 역할
- 마이크로서비스 인증
자세히 알아보기
- 슈퍼토큰이란 무엇입니까?
- 건축학
- ? 왜 자바인가?
- ⌨️ 사용자 관리 대시보드
- 슈퍼토큰과 기타
- 소스에서 빌드
- 지역 사회
- ? 기여하는 중
- 특허
우리 프로젝트가 마음에 드신다면, 부탁드립니다. 이 저장소! 피드백이 필요하시면 Discord에 가입하시거나 이 저장소에 이슈를 남겨주세요.
슈퍼토큰이란 무엇입니까?
SuperTokens는 Auth0 또는 AWS Cognito와 같은 독점 로그인 공급자에 대한 오픈 코어 대안입니다. 우리는 다음과 같은 서비스를 제공하므로 다릅니다.
- 오픈 소스: SuperToken은 사용자 수에 제한 없이 영원히 무료로 사용할 수 있습니다.
- 자체 데이터베이스를 사용하여 사용자 데이터를 100% 제어할 수 있는 온프레미스 배포입니다.
- OAuth 프로토콜의 복잡성 없이 로그인, 가입, 사용자 및 세션 관리 기능을 갖춘 엔드투엔드 솔루션입니다.
- 구현이 쉽고 보안이 강화됩니다.
- 확장성: 누구나 SuperToken을 개선하고 기여할 수 있습니다!
철학
인증은 모든 앱의 UX, 개발 경험 및 보안에 직접적인 영향을 미칩니다. 우리는 현재 솔루션이 세 가지 "기둥"을 모두 최적화할 수 없어 많은 애플리케이션이 자체 인증을 수동으로 수행하게 된다고 믿습니다. 이는 보안 문제로 이어질 뿐만 아니라 엄청난 시간 낭비이기도 합니다.
우리는 이를 바꾸고 싶습니다. 올바른 수준의 추상화를 갖춘 솔루션을 제공하는 것이 유일한 방법이라고 믿습니다. 이는 마치 처음부터 직접 구축하는 것처럼 최대의 제어력을 제공하고 안전하며 사용하기 쉽습니다. 배우고, 구축하고, 유지하는 시간)
우리는 또한 공급업체 종속을 최소화한다는 원칙을 믿습니다. 사용자 데이터를 완전히 제어할 수 있다는 것은 기존 사용자에게 강제로 로그아웃하거나 비밀번호를 재설정하거나 최악의 경우 다시 가입하도록 강요하지 않고도 SuperTokens에서 전환할 수 있다는 것을 의미합니다.
데모 앱을 보려면 여기를 클릭하세요.
- 기능 목록을 보려면 당사 웹 사이트를 방문하십시오.
- 우리는 가능한 한 기능을 분리하고 싶습니다. 이는 로그인이나 세션 관리, 또는 두 가지 모두에 SuperToken을 사용할 수 있음을 의미합니다. 실제로 우리는 Auth0과 같은 다른 로그인 공급자와의 세션 관리 통합도 제공합니다.
선적 서류 비치
해당 문서는 당사 웹사이트에서 볼 수 있습니다.
GitHub 위키 섹션에 SuperToken에 대한 자세한 정보가 있습니다.
건축학
여기에서 아키텍처 다이어그램을 찾으세요.
자세한 내용은 GitHub 위키 섹션을 참조하세요.
? 왜 자바인가?
- ✅ Java를 실행하는 것이 어려워 보일 수 있지만 배포 시 바이너리/도커 이미지와 함께 JDK를 제공합니다. 이는 다른 HTTP 마이크로서비스를 실행하는 것과 마찬가지로 SuperToken을 실행하게 합니다.
- ✅ Java는 매우 성숙한 생태계를 가지고 있습니다. 이는 타사 라이브러리가 철저한 테스트를 거쳤음을 의미합니다.
- ✅ Java의 강력한 유형 시스템은 버그를 줄이고 유지 관리를 더 쉽게 해줍니다. 이는 많은 사람이 동일한 프로젝트에 참여해야 할 때 특히 중요합니다.
- ✅ 우리 팀은 Java에 가장 익숙하며 훌륭한 Java 개발자를 고용하는 것도 상대적으로 쉽습니다.
- ✅ Java에 대한 가장 큰 비판 중 하나는 메모리 사용량입니다. 이에 대한 세 가지 해결책이 있습니다.
- 가장 자주 발생하는 인증 관련 작업은 세션 확인입니다. 이는 Java 코어에 연결하지 않고 백엔드 SDK(노드, Python, Go) 내에서 발생합니다. 따라서 코어의 단일 인스턴스는 수만 명의 사용자를 상당히 쉽게 처리할 수 있습니다.
- 우리는 의존성을 신중하게 선택했습니다. 예를 들어, 우리는 더 높은 수준의 웹 프레임워크 대신 내장된 Tomcat 서버를 사용합니다.
- 우리는 또한 앞으로 GraalVM을 사용할 계획이며 이를 통해 메모리 사용량을 95%까지 줄일 수 있습니다!
- ✅ 인증 API를 수정해야 하는 경우 백엔드 SDK 수준(예: Node, Golang, Python..)에서 수정해야 합니다. 따라서 이 저장소의 Java 코드를 직접 수정하거나 작업할 필요가 거의 없습니다.
⌨️ 사용자 관리 대시보드
SuperTokens 사용자 관리 대시보드로 사용자를 감독하세요
사용자 나열
애플리케이션에 가입한 모든 사용자를 나열합니다.
사용자 관리
세션, 메타데이터, 역할 및 계정 정보를 수정하거나 삭제하여 사용자를 관리합니다.
슈퍼토큰과 다른 것
당사 웹사이트에서 자세한 비교 차트를 찾아보세요.
소스에서 빌드
지침은 위키를 참조하세요.
지역 사회
이것이 미래에 사용할 수 있는 프로젝트라고 생각하신다면, 부탁드립니다. 이 저장소!
기여자(모든 SuperTokens 저장소 전체)
리샤브 포다르 | 어드베이트 루이아 | 부밀 사르바이야 | 조엘 쿠티뉴 |
라케쉬 업 | 무파시르 카지 | 네미 샤 | 로히트 바티아 |
마두 마하데반 | 아이다르 너그마노프 | 아르나브 드완 | NkxxkN |
LordChadiwala | 루이스 소아레스 | 수딥토 고쉬 | 파브리시오20 |
메탈릭몽키 | 비디얀슈 자이나교 | 도메니코 루치아니 | 엔조 바트로프 |
엘로이즈 이자우티에 | 아코스 레쉬 | 초투 초드하리 | 토마시 호라첵 |
샘 바우치 | 알렉세이 틸린두스 | 거스 푸네 | 첸카이C4 |
마렉 둘로프스키 | 피유시 부토리아 | 에릭 도버틴 | 카일 도슨 |
랄프 로렌스 | 크리스토퍼 카픽 | 한쥬수프 | 미할리 렌겔 |
Cerino O. Ligutom III | 나딜라스 | 바실 카타나 | 제이 미스트리 |
제이콥 마샬 | 미케트롬바 | 올렉 브도벤코 | 싯다르트 |
슈아츠 | 요웨이 부른 | 로니트 판다 | 아누그라 싱할 |
제레미 이스트햄 | 아사프 야코비 | 사트빅 차크라바르티 | 올리비에 피숑 |
시단트 바르마 | 렌이지우 | 이사야 토마슨 | 웃사브 반왈 |
사우라브 가트네카르 | 알리셰르 아이투아로프 | 사이먼 킬버그 월스트롬 | 아렙 칸 |
니콜라스 더드필드 | Qdea | 루카스 크누스 | 멜빈 힐스 |
매트 머레이 | 클레오 리베르 | 다닐 보로보이 | 크시슈토프 비트코프스키 |
레호치키 졸탄 | 비라즈 칸와데 | 아누라그 스리바스타바 |
? 기여하는 중
지침은 CONTRIBUTING.md 파일을 참조하세요.
특허
© 2020-2023 SuperTokens Inc 및 그 기여자. 모든 권리 보유.
이 소프트웨어의 일부는 다음과 같이 라이센스가 부여됩니다.
- 이 저장소의 "ee/" 디렉터리에 있는 모든 콘텐츠(해당 디렉터리가 있는 경우)는 "ee/LICENSE.md"에 정의된 라이선스에 따라 라이선스가 부여됩니다.
- SuperTokens 소프트웨어에 통합된 모든 제3자 구성 요소는 해당 구성 요소의 소유자가 제공한 원래 라이센스에 따라 라이센스가 부여됩니다.
- 위에 언급된 디렉터리 또는 제한 사항을 벗어난 콘텐츠는 "LICENSE.md" 파일 수준에 정의된 "Apache 2.0" 라이선스에 따라 사용할 수 있습니다.