Berikut perinsip kerja dari 2FA/TOTP, jadi Server akan generate suatu "key"/secret_code, nanti "key" tersebut akan disimpan di DB dan di tampilkan dalam bentuk barcode agar dapat discan oleh Mobile App. TOTP bersifat offline, jadi algoritma akan berjalan di masing2 device baik Server maupun Mobile App untuk men-generate "passcode" 6 digit berdasarkan "key" dan waktu.
Oke langsung ke dev nya ya.
Untuk depedency ane menggunakan library dari kang samdjstevens, berikut link github nya:
https://github.com/samdjstevens/java-totp/tree/master/totp-spring-boot-starter.
Library disini lumayan lengkap mulai dari generate "key"/secret_code, verify dan recovery_code. Pertama kita generate dulu "key" nya dengan code berikut:
Selanjutnya simpan dalam DB dan tampilkan dalam bentuk barcode:
Setelah jadi barcode (diolah oleh FE), lalu dapat discan oleh Mobile App (Misal Google Auth), selanjutnya akan muncul "passcode" yg berubah secara berkala. Verifikasi "passcode" nya dengan code berikut:
Bagaimana mudah bukan membuat 2FA/TOTP di Java, berikut referensi artikel untuk developnya:
https://www.javachinna.com/spring-boot-angular-two-factor-authentication/
0 Comments