Auth Utility di Elysia-Light
Auth Utility di Elysia-Light menyediakan mekanisme autentikasi berbasis access token yang sederhana, eksplisit, dan siap untuk kebutuhan production. Utility ini tidak bergantung pada session server-side, sehingga cocok untuk API, mobile app, dan SPA.
Konsep Dasar Autentikasi
Elysia-Light menggunakan pendekatan token-based authentication. Token disimpan di database dalam bentuk hash, sementara client hanya memegang token plain. Setiap request diverifikasi dengan mencocokkan hash token di database.
createAccessToken
Digunakan untuk membuat access token baru untuk user. Token yang dikembalikan ke client terdiri dari id token dan plain token yang digabungkan.
Kode berhasil di copy!
5
Format Token
Access token memiliki format id|plain-token. Bagian id digunakan untuk mempercepat pencarian record token di database, sedangkan plain-token digunakan untuk verifikasi hash.
Kode berhasil di copy!
5
verifyAccessToken
Digunakan untuk memverifikasi access token yang dikirim oleh client. Jika token valid, method ini akan mengembalikan data user dan metadata token.
Kode berhasil di copy!
5
revokeAccessToken
Digunakan untuk mencabut access token tertentu. Biasanya dipanggil saat logout atau ketika token perlu dinonaktifkan.
Kode berhasil di copy!
5
Integrasi dengan Middleware
Auth utility biasanya dipanggil di middleware atau socket auth untuk memverifikasi user sebelum request atau event diproses.
Kode berhasil di copy!
5
createUserMailToken
Digunakan untuk membuat token verifikasi berbasis email, biasanya untuk verifikasi akun atau reset password. Token ini bersifat sementara dan memiliki masa berlaku terbatas.
Kode berhasil di copy!
5
verifyUserMailToken
Digunakan untuk memverifikasi token email. Token hanya berlaku dalam jangka waktu tertentu dan hanya dapat digunakan satu kali.
Kode berhasil di copy!
5
Best Practice
Selalu gunakan HTTPS untuk pengiriman token. Simpan token di client secara aman. Gunakan revokeAccessToken saat logout. Untuk proses berat seperti email verification, kombinasikan Auth utility dengan queue.