Pereiti prie turinio
taurasgRuošiama
LTEN

Atgal

2025SSO platforma

AltPro

Organizacijų, projektų ir užduočių valdymas už vieno prisijungimo, kurį parašiau, o ne nusipirkau — dvi Spring paslaugos, viena duomenų bazė ir sistemai priklausantis prisijungimas.

Vaidmuo
Visas ciklas, autorizacijos serveris, diegimas
Metai
2025
Sukurta su
  • React
  • TypeScript
  • Spring Boot
  • OAuth2
  • MongoDB
  • nginx

Dvi Spring Boot paslaugos už vieno nginx: autorizacijos serveris, pastatytas ant Spring Authorization Server ir išduodantis OAuth2 bei OIDC žetonus, ir resursų serveris, kuris neatsakys be Bearer JWT. React ir TypeScript klientas niekada nemato slaptažodžio — jis nukreipiamas, grįžta su tapatybės žetonu ir kreipiasi į API su prieigos žetonu, kurį API pats ir patikrina.

Būtent tas atskyrimas ir buvo darbo esmė. Vieną aplikaciją su prisijungimo forma visada galima sugundyti pasitikrinti sesijos slapuką ten, kur turėtų būti tikrinamas žetonas, o kol atsiranda antras klientas, tam jau būna pasiduota. Kai išdavėjas stovi atskirai, riba tampa tinklo šuoliu, ir klaida joje krenta garsiai.

Domenas sąmoningai hierarchinis, o ne plokščias — /api/orgs/{orgId}/projects/{projectId}/tasks — kad užduoties nebūtų galima pasiekti neįrodžius kelio iki jos. Organizacijos turi narius ir roles (ADMIN, MEMBER), projektai priklauso organizacijoms, užduotys — projektams, komentarai — užduotims, o kvietimas yra pilnavertis objektas, o ne tuščias laukelis. Abi paslaugos dalijasi viena MongoDB: išdavėjas saugo naudotojus, klientus ir sutikimus, API — domeną.

Kartu keliauja ir sistemos aprašas. Visas API surašytas kaip OpenAPI dokumentas repozitorijoje, o kiekvienas langas pirma buvo nupieštas kaip wireframe ir tik tada padarytas — todėl realizacijos ekrano kopijos ir eskizai iki šiol sutampa.

Kodas

© 2026 Tauras Giedraitis · Kaunas, Lietuva · Visos teisės saugomos