Tạo mã Captcha trong Laravel
Hướng dẫn chi tiết cách tạo mã Captcha trong Laravel để bảo vệ form khỏi spam và xác thực người dùng. Bài viết sẽ giúp bạn tích hợp Captcha vào dự án Laravel một cách dễ dàng.
Bước 1: Cài đặt thư viện
Bài viết này hướng dẫn bạn cách sử dụng thư viện mews/captcha
để tạo mã Captcha trong Laravel, giúp tăng cường bảo mật cho các form bằng cách xác thực người dùng thông qua mã bảo vệ.
Mã Laravel:
Bước 1: Cài đặt thư viện mews/captcha
Chạy lệnh sau:
composer require mews/captcha
Bước 2: Cấu hình thư viện trong Laravel
- Thêm service provider và alias vào file
config/app.php
:
'providers' => [
Mews\Captcha\CaptchaServiceProvider::class,
],
'aliases' => [
'Captcha' => Mews\Captcha\Facades\Captcha::class,
],
- Chạy lệnh publish config:
php artisan vendor:publish --provider="Mews\Captcha\CaptchaServiceProvider"
Bước 3: Sử dụng Captcha trong form
Trong file web.php
:
use Illuminate\Support\Facades\Route;
Route::get('form', function () {
return view('form');
});
Route::post('submit', function () {
request()->validate([
'captcha' => 'required|captcha'
]);
return 'Mã Captcha chính xác!';
});
Trong file resources/views/form.blade.php
:
<!DOCTYPE html>
<html>
<head>
<title>Form Captcha</title>
</head>
<body>
<form action="/submit" method="POST">
@csrf
<p><input type="text" name="captcha" placeholder="Nhập mã Captcha"></p>
<p>{!! captcha_img() !!}</p>
<p><button type="submit">Gửi</button></p>
</form>
</body>
</html>
Giải thích chi tiết từng dòng code:
- Cài đặt thư viện
mews/captcha
giúp tạo mã Captcha trong Laravel. - Đăng ký
CaptchaServiceProvider
và aliasCaptcha
trong fileconfig/app.php
. - Sử dụng
captcha_img()
trong fileform.blade.php
để hiển thị hình ảnh Captcha. - Khi người dùng gửi form,
captcha
được kiểm tra vớirequest()->validate()
.
Yêu cầu hệ thống:
- PHP 7.3 hoặc mới hơn
- Laravel 8.x hoặc mới hơn
- Composer
Cách cài đặt các thư viện để chạy được mã Laravel trên:
Sử dụng Composer để cài đặt thư viện mews/captcha
:
composer require mews/captcha
Lời khuyên:
- Luôn sử dụng Captcha cho các form đăng ký hoặc đăng nhập để ngăn chặn spam.
- Kiểm tra và cập nhật mã Captcha thường xuyên để đảm bảo bảo mật.