SuperTokens
오픈소스 Auth 서비스
Features
- Auth0 / Firebase Auth / AWS Cognito / Keycloak 등의 오픈소스 대체제
- OAuth, 이메일/암호 로그인, 암호 찾기, 세션 관리, 이메일 인증, 소셜 로그인
주요 컴포넌트
- SuperToken Core : Java 로 만들어진 HTTP 서비스. 실제 비즈니스 로직
- Frontend SDK : 웹/iOS/Android/ReactNative 등 지원하는 로그인 UI 관련 기능
- Backend SDK / Driver : NodeJS,Flask,Golang 등 다양한 백엔드 프레임워크와 연동하여 SuperToken Core와 통신
- Database Plugin : MySQL,PostgresSQL,MongoDB,SQLite 등
- Y Combinator가 투자
Session Management
- 세션 생성, 확인, 새로 고침 및 취소
- httpOnly 쿠키 사용과 같은 모든 세션 모범 사례를 따릅니다.
- 세션 고정, CSRF 또는 무차별 대입 공격과 같은 일반적인 세션 취약점을 방지합니다.
- 교체 새로 고침 토큰을 사용하여 세션 하이재킹 감지
- 최적의 성능 - 세션 확인 < 1MS
- 사용자를 로그아웃하지 않고 자동 JWT 서명 키 순환
- 사용자 ID가 주어진 모든 세션을 가져오는 기능
- 프런트엔드에서 안전하게 세션 데이터 읽기
- 세션 및 JWT 페이로드 조작
Self Hosting
version: '3'
services:
db:
image: 'postgres:latest'
environment:
POSTGRES_USER: supertokens_user
POSTGRES_PASSWORD: somePassword
POSTGRES_DB: supertokens
ports:
- 5432:5432
networks:
- app_network
restart: unless-stopped
healthcheck:
test: ['CMD', 'pg_isready -U supertokens_user']
interval: 5s
timeout: 5s
retries: 5
supertokens:
image: registry.supertokens.io/supertokens/supertokens-postgresql:4.3
depends_on:
db:
condition: service_healthy
ports:
- 3567:3567
environment:
POSTGRESQL_CONNECTION_URI: "postgresql://supertokens_user:somePassword@db:5432/supertokens"
networks:
- app_network
restart: unless-stopped
healthcheck:
test: >
bash -c 'exec 3<>/dev/tcp/127.0.0.1/3567 && echo -e "GET /hello HTTP/1.1\r\nhost: 127.0.0.1:3567\r\nConnection: close\r\n\r\n" >&3 && cat <&3 | grep "Hello"'
interval: 10s
timeout: 5s
retries: 5
networks:
app_network:
driver: bridge