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à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:

  1. Cài đặt thư viện mews/captcha giúp tạo mã Captcha trong Laravel.
  2. Đăng ký CaptchaServiceProvider và alias Captcha trong file config/app.php.
  3. Sử dụng captcha_img() trong file form.blade.php để hiển thị hình ảnh Captcha.
  4. Khi người dùng gửi form, captcha được kiểm tra với request()->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.
Tags: Laravel, Captcha


Các Hướng Dẫn Cùng Chủ Đề Đang Xem

Các cách DELETE dữ liệu từ database MySQL trong Laravel

Hướng dẫn chi tiết về các phương pháp khác nhau để xóa dữ liệu từ database MySQL trong Laravel, bao gồm Eloquent, Query Builder, và cách thực hiện soft delete.
Liệt kê các cách sử dụng hàm where lồng nhau trong Laravel

Bài viết tổng hợp các cách sử dụng hàm `where` lồng nhau trong Laravel, giúp người đọc hiểu rõ cách xây dựng các truy vấn phức tạp trong ứng dụng.
Cách truyền Authentication Header Token khi POST dữ liệu tới API trong Laravel

Hướng dẫn cách truyền Authentication Header Token khi POST dữ liệu tới API trong Laravel. Bài viết sẽ trình bày chi tiết cách sử dụng `HTTP Client` của Laravel để gửi Token cùng với dữ liệu tới API.
Cách làm chức năng đăng nhập bằng tài khoản Google trong Laravel

Hướng dẫn chi tiết cách tích hợp tính năng đăng nhập bằng tài khoản Google trong Laravel sử dụng thư viện Laravel Socialite. Bài viết sẽ giúp bạn thiết lập ứng dụng Google API và cấu hình trong Laravel.
Xác thực bằng JSON Web Token (JWT) trong Laravel

Hướng dẫn từng bước triển khai xác thực API bằng JSON Web Token (JWT) trong Laravel. Bài viết sẽ bao gồm các bước cài đặt và cấu hình để bảo mật ứng dụng web thông qua token-based authentication.
Tất cả cách UPDATE dữ liệu từ database MySQL trong Laravel

Hướng dẫn chi tiết cách cập nhật dữ liệu trong database MySQL sử dụng Laravel, bao gồm cách sử dụng Eloquent ORM và Query Builder.
Hướng dẫn tích hợp VNPAY trong Laravel với tài khoản Sandbox

Hướng dẫn chi tiết cách tích hợp VNPAY vào dự án Laravel sử dụng tài khoản Sandbox của VNPAY để thực hiện các giao dịch thanh toán trực tuyến, bao gồm việc cấu hình, tạo URL thanh toán, xử lý kết quả trả về, và xây dựng giao diện.
Hướng dẫn upload nhiều hình ảnh trong Laravel

Hướng dẫn chi tiết cách upload nhiều hình ảnh trong Laravel, bao gồm việc thiết lập form upload, xử lý dữ liệu trên server và lưu trữ hình ảnh.
Các cách INSERT dữ liệu vào database MySQL trong Laravel

Khám phá các phương pháp khác nhau để insert dữ liệu vào database MySQL trong Laravel, bao gồm sử dụng Eloquent ORM và Query Builder.
Hướng dẫn làm chức năng đăng nhập bằng Apple ID trong Laravel

Bài viết hướng dẫn chi tiết cách tích hợp chức năng đăng nhập bằng Apple ID vào Laravel, sử dụng OAuth2. Bạn sẽ học cách cấu hình ứng dụng để kết nối với dịch vụ Apple và xử lý thông tin đăng nhập của người dùng.

Đã thêm vào giỏ hàng