Laravel Fortify adalah paket otentikasi backend untuk Laravel yang mendukung otentikasi dua faktor (2FA) melalui kata sandi satu kali berbasis waktu (TOTP). Ini fleksibel dan agnostik untuk digunakan oleh pengguna aplikasi klien TOTP, artinya tidak mengikat Anda secara khusus ke Google Authenticator dan dapat bekerja dengan aplikasi otentikasi berbasis TOTP apa pun, termasuk Authy.
Apa yang dilakukan Laravel Fortify untuk 2FA
Laravel Fortify menyediakan logika backend untuk menghasilkan kunci rahasia 2FA, menyimpannya dengan aman, menghasilkan kode pemulihan, dan memvalidasi token TOTP selama login. Ini menggunakan kunci rahasia dua faktor pengguna untuk memverifikasi kata sandi satu kali yang dihasilkan oleh aplikasi authenticator apa pun yang mendukung algoritma TOTP standar (RFC 6238). Fortify sendiri tidak mengamanatkan atau membatasi aplikasi seluler atau desktop yang harus digunakan pengguna.
Menggunakan Authy bukan Google Authenticator
Authy dan Google Authenticator keduanya adalah aplikasi authenticator berbasis TOTP. Keduanya menghasilkan 6 digit kode setiap 30 detik berdasarkan kunci rahasia yang dibagikan selama pengaturan (biasanya dengan memindai kode QR). Laravel Fortify bekerja mulus dengan aplikasi klien apa pun yang mendukung standar ini. Oleh karena itu, Anda benar -benar dapat menggunakan Authy alih -alih Google Authenticator dengan Laravel Fortify.
Poin -poin penting tentang Authy dan Google Authenticator dalam konteks ini:
- Kompatibilitas: Authy menggunakan standar TOTP yang sama dengan Google Authenticator, sehingga setiap pengaturan 2FA di Laravel Fortify akan bekerja dengan salah satu aplikasi tanpa perubahan apa pun pada backend Laravel Anda.
-Pengalaman Pengguna: Authy menawarkan beberapa keunggulan dibandingkan Google Authenticator, seperti menyinkronkan token di seluruh perangkat (dukungan multi-perangkat), cadangan cloud terenkripsi, dan aplikasi desktop (secara historis, saat ini berpusat pada mobile), yang dapat menciptakan pengalaman pengguna yang lebih baik.
- Keamanan: Authy memiliki opsi untuk perlindungan pin dan keamanan biometrik pada aplikasi, dan cadangan terenkripsi, sementara Google Authenticator tidak memiliki cadangan cloud terenkripsi dan sinkronisasi multi-perangkat. Fitur-fitur ini dapat membuat Authy lebih ramah pengguna dan tangguh terhadap kehilangan perangkat dari perspektif pengguna.
- Pengaturan dalam Laravel Fortify: Satu -satunya perubahan dalam implementasi Laravel Fortify Anda adalah dengan menyediakan kode QR atau kunci rahasia untuk pengguna untuk pemindaian di Authy alih -alih Google Authenticator. Karena kedua aplikasi membaca format yang sama, QR Code Fortify menghasilkan karya di luar kotak dengan salah satu aplikasi.
Pertimbangan implementasi ###
1. Tampilan Kode QR Frontend: Saat mengaktifkan 2FA, Fortify biasanya menghasilkan kode QR berdasarkan kunci rahasia. Kode QR ini dapat dipindai oleh aplikasi Authy atau Google Authenticator. Frontend Anda hanya perlu membuat kode QR ini, dan pengguna dapat memilih aplikasi pilihan mereka. Tidak diperlukan perubahan kode backend.
2. Langkah Konfirmasi: Satu masalah terkadang ditemui dengan Laravel Fortify adalah bahwa memungkinkan 2FA tanpa mengkonfirmasi kode yang dimasukkan dapat mengunci pengguna jika mereka tidak menyelesaikan pengaturan dengan benar. Menerapkan langkah konfirmasi di mana pengguna memasukkan kode yang dihasilkan oleh Authy (atau Google Authenticator) setelah memindai kode QR adalah praktik terbaik. Ini berlaku terlepas dari aplikasi otentikasi yang digunakan.
3. Kode Pemulihan: Fortify menyediakan kode pemulihan untuk bypass 2FA jika pengguna kehilangan akses ke aplikasi authenticator mereka. Kode -kode ini bekerja secara independen dari pilihan aplikasi (Authy atau Google Authenticator).
Ringkasan Perbedaan dari Perspektif Pengguna
- Keuntungan Authy: **
- Dukungan multi-perangkat dan sinkronisasi otomatis token 2FA.
- Cadangan cloud terenkripsi untuk menghindari kehilangan token karena kehilangan perangkat.
- Pin opsional dan keamanan biometrik untuk aplikasi.
- Dukungan aplikasi desktop dan browser (meskipun beberapa aplikasi desktop dihentikan pada awal 2024).
- Otentikasi berbasis push (meskipun bukan TOTP standar, lebih relevan untuk implementasi lain).
- Keuntungan Google Authenticator: **
- Lebih banyak diketahui dan didukung oleh banyak layanan.
- Aplikasi yang lebih sederhana, infrastruktur dukungan yang kurang kompleks (tidak ada akun, tidak ada cadangan).
- sepenuhnya offline setelah pengaturan awal (tidak ada cadangan cloud).
Dari sudut pandang integrasi Laravel Fortify, perbedaan -perbedaan ini tidak ada konsekuensi karena kode TOTP dari kedua aplikasi divalidasi dengan cara yang sama dengan Fortify.
Catatan Tambahan tentang Penggunaan Fortify
Laravel Fortify tidak memberikan tampilan frontend atau UI; Ini menyediakan layanan backend untuk otentikasi. Banyak pengembang menggunakan Fortify dengan Laravel Jetstream atau kit UI lainnya. Terlepas dari UI, kuncinya adalah bahwa Fortify menghasilkan 2FA Secret dan memvalidasi kode, meninggalkan pilihan aplikasi Authenticator kepada pengguna.
Jika kustomisasi diperlukan untuk meningkatkan UX atau menangani pemulihan akun dengan lebih baik (menambahkan bendera "Two_Factor_Confirmed", Menyesuaikan tampilan, dll.), Ini dapat diimplementasikan di lapisan Fortify tetapi tidak tergantung pada pilihan antara Authy dan Google Authenticator.
Kesimpulan
Ya, Anda dapat menggunakan Authy alih -alih Google Authenticator di Laravel Fortify tanpa perubahan yang diperlukan untuk implementasi 2FA backend Anda. Kedua aplikasi menggunakan standar TOTP yang sama didukung sepenuhnya oleh Fortify. Memilih Authy dapat menawarkan fitur kegunaan dan cadangan yang ditingkatkan untuk pengguna Anda, terutama dalam skenario kehilangan perangkat atau akses multi-perangkat, tetapi dari sudut pandang pengembang Laravel, integrasi tetap sama. Pengguna hanya memindai kode QR yang disediakan oleh Fortify dengan aplikasi pilihan mereka untuk mengatur 2FA.
Fleksibilitas ini adalah dengan desain, memungkinkan Laravel Fortify bekerja dengan aplikasi apa pun yang menghasilkan kode TOTP standar, termasuk tetapi tidak terbatas pada Google Authenticator, Authy, Microsoft Authenticator, dan lainnya.