Mengelola Middleware Otentikasi pada Microservices dengan Node.js (Bagian Kedua)
Video tutorial ini merupakan bagian kedua dari seri microservices dengan Node.js. Pada bagian ini, kita akan melanjutkan pengembangan dari proyek sebelumnya. Jika Anda belum menonton bagian pertama, Anda bisa menemukannya di kolom deskripsi video.
Di proyek ini, kita menambahkan modul atau API microservices login. Sebelumnya, kita sudah membuat dua API microservices, yaitu layanan 1 dan layanan 2. Layanan 1 hanya boleh diakses oleh pengguna dengan Role 1, sedangkan layanan 2 dapat diakses oleh pengguna dengan Role 1 dan 2. Kita akan menggunakan token JWT (JSON Web Token) yang memiliki atribut payload berupa objek dengan properti username dan Role. Atribut lainnya adalah kunci yang kita simpan di sisi gateway untuk memudahkan verifikasi token tanpa perlu mengakses modul di dalam microservices.
Saat pengguna dengan Role 1 atau Role 2 mengakses login, mereka harus melalui gateway terlebih dahulu dengan mengirimkan kredensial yang mereka miliki. Kemudian, kredensial ini beserta kunci yang ada di sisi gateway dikirim ke modul login untuk membuat token berdasarkan kredensial pengguna dan kunci dari gateway. Modul login akan memverifikasi kredensial pengguna, jika valid, akan dibuat token dengan JWT yang menggunakan atribut payload berupa username dan Role. Token ini kemudian dikirim ke gateway dan diteruskan ke pengguna.
Proses autentikasi ini menggunakan middleware yang disimpan dalam file “auth.ts” di dalam folder middleware. Middleware ini akan memverifikasi token pengguna yang dikirim bersama dengan permintaan mereka. Jika token valid, middleware akan memeriksa Role pengguna dan mengizinkan akses ke layanan yang sesuai.
Contoh penggunaan gateway, login, dan layanan ini sudah dijelaskan pada video dengan menjalankan masing-masing layanan pada port yang berbeda. Ketika pengguna berhasil login, mereka akan menerima token yang dapat digunakan untuk mengakses layanan 1 dan layanan 2 sesuai dengan Role mereka. Jika pengguna mencoba mengakses layanan yang tidak diizinkan berdasarkan Role mereka, gateway akan memberikan respons “akses tidak diperkenankan” (status 403).
Dengan menggunakan middleware otentikasi ini, kita dapat mengelola akses dan otorisasi pengguna dengan lebih mudah pada microservices yang kita bangun menggunakan Node.js. Middleware ini juga membantu mengurangi beban pada layanan, karena layanan tidak perlu memverifikasi akses yang tidak sah secara langsung.
Lihat di Youtube: Video Menangani Middleware Microservices dengan Node JS.