- • Express 4.19 · Node 20 · Port 7170
- • POST /generate-url — Generate login URL for third-party
- • GET /sso-data — Fetch user data via JWT token
- • Modular architecture: modules auto-loader
- • JWT multi-tier: access, refresh, OTP, basic
- • AES encryption for sensitive payload
- • PostgreSQL Master-Slave via pg-promise
- • Master: INSERT / UPDATE / DELETE
- • Slave: SELECT (auto-failover to master)
- • Redis: cache, URL code store, Socket.IO adapter
- • MinIO: object storage for file uploads
- • SMTP: OTP, registration, forgot password
- • GitLab CI — 4 stage pipeline (manual trigger)
- • Docker build (node:20-slim)
- • Docker Swarm deploy (0.5 CPU, 250MB RAM)
- • Auto Nginx reverse-proxy from template
- • Dev: runner-1-sims-psm (develop branch)
- • Prod: server-sso-prod (main branch)
- ① Third-party app sends
POST /generate-url with access_key + hash_code (AES encrypted)
- ② API validates access_key from DB, decrypts hash_code, generates unique URL code → stores in Redis
- ③ User opens URL → login page → after auth, client gets JWT OTP token
- ④ Third-party calls
GET /sso-data with JWT → API decrypts email + party code → returns user + group data