Panduan

Cara Menambahkan Autentikasi Dua Faktor ke Aplikasi Kamu

Untuk menambahkan autentikasi dua faktor (2FA) ke aplikasi, biarkan pengguna menautkan aplikasi authenticator dengan memindai kode QR, lalu minta kode enam digit yang ditampilkan setelah kata sandi, dan baru buat sesi penuh di server setelah kode itu benar. Berikan setiap pengguna kode pemulihan sekali pakai saat mereka mengaktifkannya, batasi berapa banyak tebakan kode yang bisa dilakukan seseorang, dan wajibkan kata sandi plus kode yang masih berlaku sebelum 2FA bisa dinonaktifkan. Jika kamu memakai penyedia autentikasi yang dihosting, aktifkan opsi multi-faktor bawaannya daripada membangun sendiri.

Panduan ini membahas pilihan-pilihan, alur persisnya, prompt yang bisa kamu berikan ke AI builder, dan kesalahan yang membuat 2FA terlihat ada tetapi sebenarnya tidak melakukan apa-apa. Jika konsepnya masih baru, mulailah dengan apa itu autentikasi dua faktor.

Sebelum mulai: kamu membutuhkan login yang sudah berfungsi

2FA berada di atas proses masuk yang sudah ada. Kamu membutuhkan salah satu dari ini terlebih dahulu:

  • Login milikmu sendiri, dengan pengguna dan kata sandi yang di-hash disimpan di database aplikasi kamu.
  • Penyedia autentikasi yang dihosting yang mengelola pengguna untukmu.

Jika kamu belum punya salah satunya, mulailah dengan cara menambahkan login ke aplikasi kamu. Sisa panduan ini mengasumsikan langkah kata sandi sudah berfungsi.

Pilih faktor kedua

MetodeUsaha penggunaKeamananBiaya operasionalPilihan default yang baik?
Aplikasi authenticator (TOTP)Pindai kode QR sekali, ketik kode saat loginBaik; bisa dipancing jika situs palsu meminta kodeGratisYa, untuk sebagian besar aplikasi
Passkey atau security keyKetuk atau gunakan sidik jariPaling kuat; tahan terhadap phishingGratisYa, jika penggunamu nyaman memakainya
Kode lewat emailPeriksa kotak masuk saat loginHanya sekuat akun email ituBiaya pengiriman emailHanya sebagai cadangan
Kode SMSTunggu pesan teksPaling lemah; SIM swapping dan phishingBiaya per pesanHanya jika pengguna tidak bisa memakai aplikasi

TOTP adalah singkatan dari time-based one-time password, standar (RFC 6238) yang dipakai aplikasi authenticator. Server kamu dan ponsel pengguna berbagi sebuah secret; keduanya menghasilkan kode pendek yang sama dari secret dan waktu saat ini, biasanya berganti setiap 30 detik. Tidak perlu koneksi jaringan atau penyedia SMS.

Passkey menggantikan atau melengkapi kata sandi dengan kunci kriptografi yang disimpan di perangkat pengguna. Ini lebih kuat tetapi lebih banyak pekerjaan untuk dibangun sendiri, sehingga banyak aplikasi mulai dengan TOTP dan menambahkan passkey nanti, atau mendapatkannya dari penyedia autentikasi.

Bangun sendiri atau aktifkan?

PendekatanKelebihanKekurangan
Multi-faktor dari penyedia autentikasi yang dihostingLebih sedikit kode; penyedia yang merawat detail keamanannyaBiaya bulanan saat skala besar; kamu bergantung pada opsi penyedia
TOTP sendiri dengan pustakaKontrol penuh; tanpa biaya per penggunaKamu yang menangani kasus khusus: pengunci, pemulihan, penyimpanan secret

Periksa dokumentasi terkini penyedia autentikasimu untuk melihat faktor apa saja yang didukung dan di paket apa. Apa pun pilihanmu, jangan pernah menulis sendiri matematika pembuatan kode; gunakan pustaka yang sudah banyak dipakai.

Tentukan kebijakan terlebih dahulu

Jawab pertanyaan ini sebelum membuat prompt, karena jawabannya mengubah desain:

  1. Siapa yang wajib memakainya? Opsional untuk semua orang, wajib untuk admin dan staf, atau wajib untuk semua. Mewajibkannya untuk siapa pun yang memiliki kuasa admin adalah hal yang umum. Lihat role-based access control.
  2. Seberapa sering pengguna memasukkan kode lagi? Setiap login, atau sekali per perangkat selama 30 hari ("ingat perangkat ini").
  3. Tindakan apa yang butuh verifikasi ulang? Mengubah email, detail pembayaran, atau mematikan 2FA adalah kandidat yang baik. Ini disebut step-up authentication.
  4. Apa prosesnya jika ponsel hilang? Kode pemulihan, plus cadangan manual yang bersedia kamu jalankan.

Langkah demi langkah: TOTP 2FA pada login milikmu sendiri

1. Simpan field yang tepat

Setiap pengguna membutuhkan: apakah 2FA aktif, secret TOTP (dienkripsi saat disimpan, bukan teks biasa), waktu diaktifkan, dan daftar kode pemulihan yang disimpan dalam bentuk hash, seperti kata sandi. Tambahkan juga tempat untuk menghitung percobaan yang gagal.

2. Pendaftaran

  1. Pengguna membuka Pengaturan dan mengklik Aktifkan autentikasi dua faktor.
  2. Server membuat secret baru dan mengembalikannya sebagai kode QR, plus versi teks untuk orang yang tidak bisa memindai.
  3. Pengguna memindai dengan aplikasi authenticator dan mengetik kode saat ini.
  4. Server memeriksa kode. Hanya jika benar, server menyimpan secret dan menandai 2FA sebagai aktif.
  5. Aplikasi menampilkan 8–10 kode pemulihan sekali saja dan meminta pengguna menyimpannya.

Langkah 4 penting: mengaktifkan 2FA sebelum kode dikonfirmasi akan mengunci siapa pun yang pemindaiannya gagal.

3. Login dengan langkah kedua

  1. Pengguna mengirim email dan kata sandi. Server memeriksanya.
  2. Jika 2FA aktif, server tidak membuat sesi penuh. Sebagai gantinya, server membuat status "faktor kedua tertunda" yang berumur pendek.
  3. Aplikasi menampilkan layar kode. Server memeriksa kode, dengan sedikit toleransi untuk perbedaan jam.
  4. Hanya sekarang server mengeluarkan sesi sungguhan.

Setiap rute dan endpoint API yang dilindungi harus menolak status tertunda. Layar 2FA yang hanya menyembunyikan halaman di browser bisa dilewati dengan memanggil API secara langsung.

4. Batas dan peringatan

Kode enam digit punya satu juta kemungkinan, yang bisa ditebak tanpa batas. Batasi percobaan, kunci langkah kedua selama beberapa waktu setelah beberapa kegagalan, dan kirim email ke pengguna saat itu terjadi. Lihat rate limiting dan mengirim email dari aplikasi kamu.

5. Pemulihan dan mematikan 2FA

  • Kode pemulihan hanya berfungsi sekali, lalu dihapus.
  • Menonaktifkan 2FA membutuhkan kata sandi dan kode saat ini atau kode pemulihan.
  • Membuat ulang kode pemulihan membatalkan set lama.
  • Kirim email kepada pengguna setiap kali 2FA diaktifkan atau dinonaktifkan.

Prompt untuk AI builder kamu

Mulai dengan alur inti:

Tambahkan autentikasi dua faktor opsional menggunakan aplikasi authenticator (TOTP) ke login email dan kata sandi kami yang sudah ada. Gunakan pustaka TOTP yang sudah dikenal, jangan tulis algoritmanya sendiri. Di Pengaturan, tampilkan kode QR dan secret teks, dan aktifkan 2FA hanya setelah pengguna memasukkan kode yang valid. Simpan secret terenkripsi dan jangan pernah menampilkannya lagi setelah pengaturan. Tampilkan 10 kode pemulihan sekali pakai satu kali saja dan simpan dalam bentuk hash.

Lalu penegakannya, yang paling sering gagal pada kode yang dibuat AI:

Tegakkan 2FA di server. Setelah kata sandi benar, pengguna dengan 2FA aktif mendapat status tertunda yang berumur pendek, bukan sesi penuh. Setiap halaman dan rute API yang dilindungi harus menolak status tertunda. Batasi percobaan kode menjadi 5, lalu kunci langkah kedua selama 15 menit dan kirim email kepada pengguna.

Lalu kebijakan:

Wajibkan 2FA untuk akun admin: admin tanpa 2FA diarahkan ke pengaturan dan tidak bisa mengakses dashboard sampai selesai. Wajibkan kata sandi dan kode saat ini untuk mematikan 2FA atau mengubah email akun. Kirim email kepada pengguna saat 2FA diaktifkan atau dinonaktifkan.

Terakhir, minta agent menjelaskan apa yang sudah dibuatnya:

Daftarkan setiap rute yang memeriksa faktor kedua yang sudah selesai, di mana secret TOTP dan kode pemulihan disimpan, dan bagaimana keduanya dilindungi.

Kesalahan yang sering terjadi

  • Sesi diterbitkan setelah kata sandi. Ini bug paling serius. Jika sesi penuh sudah ada sebelum kode diperiksa, 2FA hanya hiasan. Uji dengan memanggil API yang dilindungi setelah langkah kata sandi saja.
  • Tidak ada batas percobaan. Tebakan tanpa batas membuat kode bisa dipaksa dengan brute force.
  • Secret atau kode pemulihan dalam teks biasa. Kebocoran database akan memberikan faktor kedua semua orang.
  • Mengaktifkan sebelum memverifikasi. Pengguna yang salah memindai akan terkunci saat login berikutnya.
  • Tidak ada jalur pemulihan. Setiap ponsel yang hilang menjadi tiket dukungan atau pelanggan yang hilang.
  • Mematikan dengan mudah. Jika sesi yang dicuri bisa menonaktifkan 2FA tanpa kode, perlindungannya hilang.
  • Kode di log. Pastikan kode dan secret tidak pernah muncul di log server atau pesan error.
  • Hanya memeriksa di halaman login. Reset kata sandi, sign-in "magic link", dan login sosial juga harus menghormati 2FA, atau itu menjadi cara untuk melewatinya.

Checklist pengujian

  • Pendaftaran hanya selesai setelah kode yang valid
  • Login dengan kata sandi benar tetapi tanpa kode tidak memberi akses ke halaman atau API yang dilindungi mana pun
  • Kode yang salah ditolak; percobaan salah berulang memicu pengunci dan email
  • Kode dari beberapa menit lalu ditolak
  • Setiap kode pemulihan hanya berfungsi sekali
  • Mematikan 2FA membutuhkan kata sandi dan kode saat ini
  • Reset kata sandi tidak melewati 2FA
  • Admin tanpa 2FA tidak bisa mengakses halaman admin (jika diwajibkan)
  • Secret dan kode pemulihan dienkripsi atau di-hash di database
  • Tidak ada kode atau secret yang muncul di log

Jalankan juga checklist keamanan untuk aplikasi buatan AI secara lengkap sebelum peluncuran.

Menambahkan 2FA di Mythex

Mythex tidak menyertakan sistem login bawaan untuk pengguna akhir aplikasimu, jadi 2FA menjadi bagian dari pendekatan autentikasi yang kamu pilih: login email dan kata sandi milikmu sendiri menggunakan database proyek, atau penyedia yang dihosting dengan dukungan multi-faktor. Kamu mendeskripsikan yang kamu inginkan di chat dengan prompt seperti di atas, dan key penyedia disimpan di secret proyek (lewat /secrets, pengaturan proyek, atau kartu secret yang ditampilkan agent) bukan di kotak pesan. Resep dokumentasi Tambahkan login ke aplikasi kamu memiliki prompt awal, dan Keamanan untuk aplikasi yang kamu buat membahas kebiasaan seputar key dan izin. Setelah agent selesai, uji setiap item di checklist di Preview sebelum publikasi.

Pertanyaan

Apa cara termudah untuk menambahkan autentikasi dua faktor ke aplikasi?

Jika kamu memakai penyedia autentikasi yang dihosting, aktifkan opsi multi-faktor bawaannya; biasanya ini yang paling sedikit membutuhkan kode. Jika kamu menjalankan login sendiri, tambahkan kode aplikasi authenticator (TOTP) dengan pustaka yang sudah dikenal, plus kode pemulihan dan pemeriksaan di server.

Haruskah saya memakai kode SMS untuk 2FA?

SMS lebih baik daripada tanpa faktor kedua, tetapi ini adalah opsi umum yang paling lemah karena pesan teks bisa dialihkan melalui SIM swapping dan kode bisa dipancing (phishing). Tawarkan aplikasi authenticator sebagai pilihan utama, dan passkey jika penggunamu sudah siap memakainya.

Apakah saya membutuhkan database untuk menambahkan 2FA?

Jika kamu menjalankan login sendiri, ya. Secret 2FA setiap pengguna, status apakah 2FA aktif, dan kode pemulihan yang di-hash mereka harus disimpan di tempat yang bisa diperiksa server kamu. Penyedia autentikasi yang dihosting menyimpannya untukmu.

Apa yang terjadi jika pengguna kehilangan ponselnya?

Mereka masuk dengan salah satu kode pemulihan sekali pakai yang kamu tampilkan saat mengaktifkan 2FA, lalu mengatur ulang 2FA di perangkat baru. Tanpa kode pemulihan, kamu memerlukan pemeriksaan identitas manual, jadi tentukan prosesnya sebelum peluncuran.

Mythex · Pricing · Bangun apa pun dengan AI · Template website dan aplikasi · Mythex dibandingkan · Glosarium membuat aplikasi dengan AI · Alat gratis untuk membuat aplikasi dengan AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)