Waktoo Super App - Sistem Autentikasi terpadu untuk multi aplikasi
Gambaran Umum
Di Waktoo (bagian dari Kazee), kami mengembangkan tiga produk SASS, yaitu Waktoo CRM, Waktoo HRM, dan Waktoo Commerce.
Kemudian kami mulai mengembangkan waktoo Super App - Sebuah platform yang menggabungkan ketiga produk diatas menjadi satu kesatuan.
Salah satu tantangan terbesarnya ialah sistem autentikasi. Masing-masing produk sudah memiliki sistem autentikasinya masing masing. Kami membutuhkan sistem autentikasi terpusat yang bisa bekerja untuk ketiga produk tanpa merusak alur auntentikasi yang sudah ada saat ini.
Permasalahan
- Pengguna diharuskan log in secara terpisah untuk setiap produk.
- setiap produk menghasilkan JWT token tersendiri, yang tidak valid untuk produk lain.
- Menggantikan alur autentikasi yang sudah berjalan terlalu beresiko.
- Kami membutuhkan Single Sign-on (SSO) tetapi juga yang backward compatible
Solusi
Saya merancang dan mengimplementasikan Service Autentikaso di Waktoo Super App, yang menghadirkan:
- Single Login. Pengguna login sekali melalui portal Super app
- Token terpadu. Sebuah JWT yang bisa dipakai lintas aplikasi.
- Backward Compatibility. JWT yang sudah berjalan saat ini pada setiap produk akan tetap valid.
- Integrasi yang seamless atau lancar. Tanpa ada breaking changes untuk client pengguna aplikasi.
Solusi ini menjadi pondasi untuk Super App - Memadukan autentikasi tanpa mengganggu sistem autentikasi yang lama pada masing-masing produk.
Arsitektur & Alur Autentikasi

Service Autentikasi Super App membuat JWT menggunakan algoritma RS256 (enkripsi asimetris). Setiap aplikasi akan melakukan validasi token menggunakan public key Super App, sehingga proses autentikasi dapat berjalan secara independed tanpa bergantung pada pemanggilan api pada Super app.
Berikut gambaran umum alur autentikasi tersebut:
- Login - Pengguna melalukan autentikasi melalui portal Super App
- Pembuatan Token - Ketika login sukses, sistem Super App akan membuat JWT yang berisi identitas dan claims dari pengguna tersebut
- Penggunaan Token - Setiap client menyisipkan token pada setiap API request menggunakan skema Berier
- Verifikasi - Setiap aplikasi melakukan verifikasi terhadap JWT menggunakan public key serta cek validitas token tersebut
- Access - Apabila token valid, maka akses ke API tersebut akan diberikan, selain itu semua request ditolak.

Kontribusi
Dengan menggabungkan autentikasi ke SSO berbasis JWT, kami menyelesaikan masalah session yang terpisah dan alur login yang berantakan.
Perbaikan utama:
- Pengalaman Pengguna: login mulus di semua produk.
- Performa: validasi lebih cepat tanpa panggilan jaringan tambahan.
- Keamanan: tanda tangan lebih kuat pakai kunci privat–publik.
- Pemeliharaan: logika autentikasi tidak duplikat lagi.
- Skalabilitas: dasar kuat untuk produk Waktoo berikutnya.