Di era digital yang semakin kompleks, serangan bot, spam, dan aktivitas mencurigakan menjadi tantangan besar bagi pengembang web. Salah satu solusi efektif untuk meminimalkan risiko ini adalah dengan mengimplementasikan verifikasi "I'm Not a Robot" menggunakan Google reCAPTCHA. Artikel ini akan membahas langkah-langkah praktis untuk mengintegrasikan fitur ini di Laravel, sekaligus menjelaskan mengapa hal ini penting dan kelebihannya bagi aplikasi webmu.
Langkah-Langkah Implementasi reCAPTCHA di Laravel
- Daftarkan Situs di Google reCAPTCHA Admin

Kunjungi Google reCAPTCHA Admin dan login dengan akun Google. Isi Label dan Nama Proyek sesuai kebutuhan (misal: "Latihan"). Pilih reCAPTCHA V2 dan verifikasi I'm not a robot, isi bagian domain dengan alamat proyek yang akan mengimplementasikan Google reCAPTCHA. Pada contoh ini proyek saya hanya akan berjalan di lingkungan lokal saja. Kemudian submit dan tunggu beberapa saat hingga kamu akan diberi dua kunci yang digunakan untuk menerapkan reCAPTCHA, salin dan simpan dengan aman kedua kunci tersebut. Contoh:
SITEKEY=6LeP8tcxxxxxxxxxxxxxxxxxxxxxxx
SECRETKEY=6LeP8tcxxxxxxxxxxxxxxxxxxxxx
- Install Package Pendukung
Untuk memudahkan integrasi, gunakan package anhskohbo/no-captcha. Jalankan perintah:
composer require anhskohbo/no-captcha
- Konfigurasi Kunci di File .env
Tambahkan variabel berikut di file .env
Laravel:
NOCAPTCHA_SECRET=6LeP8tcxxxxxxxxxxxxxxxxxxxxx
NOCAPTCHA_SITEKEY=6LeP8tcxxxxxxxxxxxxxxxxxxxxxxx
- Tambahkan Widget reCAPTCHA ke Formulir
Buka file Blade (misal: login.blade.php
) dan sisipkan kode berikut di dalam tag <form>
, biasanya sebelum tombol submit:
{!! NoCaptcha::renderJs() !!}
{!! NoCaptcha::display() !!}

Pastikan widget muncul dengan reload halaman. Contoh tampilan:

- Validasi Respons di Controller
Pada controller yang menangani submit formulir (misal: LoginController
), tambahkan validasi untuk memastikan reCAPTCHA terisi:
public function login(Request $request) {
$request->validate([
'email' => 'required|email',
'password' => 'required|string',
'g-recaptcha-response' => 'required|captcha' // validasi untuk google recaptcha
], [
'g-recaptcha-response.required' => 'Please verify that you are not a robot.', // pesan error kustom untuk recaptcha
'g-recaptcha-response.captcha' => 'CAPTCHA Failed! Try again later.'
]);
// kode untuk autentikasi pengguna
}
- Uji Fungsi reCAPTCHA
Coba submit formulir tanpa mencentang reCAPTCHA → harus muncul pesan error. Jika berhasil, sistem akan memproses request hanya jika verifikasi lolos.
Baca juga: Cara Membuat Fitur Upload File atau Gambar di Laravel dengan Storage.
Mengapa Verifikasi "I'm Not a Robot" Penting?
Verifikasi reCAPTCHA dirancang untuk membedakan manusia dan bot dengan meminta pengguna menyelesaikan tantangan sederhana (seperti mencentang kotak). Berikut manfaat utamanya:
- Mencegah Serangan Bot dan Spam
Formulir login, registrasi, atau kontak rentan diisi oleh bot untuk mengirim spam atau melakukan brute force. reCAPTCHA memblokir akses otomatis ini. - Pengalaman Pengguna yang Lebih Baik
Dibandingkan CAPTCHA tradisional yang rumit, reCAPTCHA v2 hanya memerlukan satu klik, sehingga tidak mengganggu pengguna asli. - Meningkatkan SEO
Website bebas spam lebih disukai mesin pencari seperti Google, sehingga meningkatkan kredibilitas dan peringkat SEO. - Kepatuhan terhadap Keamanan Data
Menambahkan lapisan keamanan ekstra membantu memenuhi standar perlindungan data seperti GDPR.
Keamanan adalah aspek kritis yang tidak boleh diabaikan, terutama di tengah meningkatnya serangan siber dan eksploitasi bot. Dengan mengimplementasikan reCAPTCHA, kamu tidak hanya berusaha melindungi data pengguna, tetapi juga menjaga kredibilitas aplikasi dari aktivitas mencurigakan. Langkah sederhana ini bisa menjadi benteng pertama yang menghalangi ribuan spam harian, menghemat sumber daya server, dan memastikan pengalaman pengguna tetap optimal. Berbicara mengenai keamanan, maka validasi setiap input dari pengguna juga baiknya selalu diterapkan untuk mencegah jenis data yang tidak sesuai dan mungkin saja berbahaya, selengkapnya bisa kamu baca di Tutorial Laravel: Validasi Input dari Form.