Package Laravel Icaptcha menyediakan solusi keamanan berbasis image CAPTCHA yang fleksibel untuk aplikasi Laravel Anda. Icaptcha menawarkan berbagai tipe tantangan (teks, matematika, dan pengetahuan umum) dan mudah diintegrasikan menggunakan Blade Directive sederhana.
composer require novay/icaptcha
Setelah instalasi, jalankan perintah publish untuk menyalin config, view, dan data ke direktori aplikasi Anda:
php artisan vendor:publish --tag=icaptcha-config # [config/icaptcha.php]
php artisan vendor:publish --tag=icaptcha-views # [resources/views/vendor/icaptcha/icaptcha.blade.php]
php artisan vendor:publish --tag=icaptcha-data # [storage/app/vendor/icaptcha/cities.json]
Disarankan: Periksa dan sesuaikan pengaturan di
config/icaptcha.phpsesuai kebutuhan Anda, terutama path font dan dimensi gambar.
Gunakan Blade Directive @icaptcha di mana pun Anda membutuhkan kode keamanan (biasanya di formulir login atau pendaftaran).
<div class="form-group">
<label for="icaptcha">Kode Keamanan</label>
<div class="icaptcha-wrapper">
@icaptcha
</div>
<input type="text" name="icaptcha" required class="form-control" placeholder="Masukkan jawaban di atas">
</div>
Anda dapat menimpa tipe dan parameter konfigurasi Captcha langsung saat pemanggilan directive:
| Tipe | Deskripsi | Contoh Pemanggilan |
|---|---|---|
text |
Karakter acak dengan rotasi per karakter. | @icaptcha(['length' => 6]) |
math |
Soal aritmatika sederhana. | @icaptcha(['type' => 'math', 'math_operator' => ['+']]) |
city |
Tebak nama kota (vokal disamarkan). | @icaptcha(['type' => 'city']) |
Gunakan aturan validasi icaptcha yang disediakan oleh package di Request atau Controller Anda.
// Dalam FormRequest atau Controller
public function store(Request $request)
{
$request->validate([
// ... aturan validasi lainnya
'icaptcha' => 'required|icaptcha',
], [
'icaptcha.required' => 'Mohon masukkan kode keamanan.',
'icaptcha.icaptcha' => 'Jawaban kode keamanan tidak tepat.',
]);
// ... Logika login atau pendaftaran berhasil
}
Perhatian: Aturan
icaptchasecara otomatis mengambil jawaban yang benar dari session, membandingkannya dengan input pengguna, dan menghapus kunci session setelah validasi.
Berikut adalah kunci-kunci penting di config/icaptcha.php:
| Kunci | Tipe | Deskripsi | Default |
|---|---|---|---|
type |
string |
Tipe Captcha: 'text', 'math', atau 'city'. |
'text' |
session_key |
string |
Kunci yang digunakan untuk menyimpan jawaban di session. | 'icaptcha_code' |
width |
int |
Lebar gambar Captcha (piksel). | 180 |
height |
int |
Tinggi gambar Captcha (piksel). | 50 |
font_path |
string |
Path ke file font TTF yang digunakan. | Path default |
math_operator |
array |
Operator yang digunakan untuk tipe math (e.g., ['+', '-']). |
['+', '-'] |
Package ini dirilis di bawah Lisensi MIT.
How can I help you explore Laravel packages today?