- Install composer package
composer require tutorials/recaptcha3
- Define service provider in
config/app.php
'providers' => [
...
Tutorials\Recaptcha3\RecaptchaServiceProvider::class
],
- Define variables in
.env
file and put values from recaptcha admin panel
RECAPTCHA_ENABLED=
RECAPTCHA_SITE_KEY=
RECAPTCHA_SECRET_KEY=
- Put
recaptcha
middleware on route
Route::post('/login', LoginController::class)->middleware('recaptcha');
Route::post('/register', LoginController::class)->middleware('recaptcha:0.6');
- Insert
@recaptcha
blade directive in the layout
<!DOCTYPE html>
<html lang="en">
<head>
<title>Recaptcha</title>
@recaptcha
</head>
</html>
- Wrap your form submit logic with recaptcha validation
window.recaptcha('action_name_for_recaptcha_statistic').then((token) => {
// form submition logic
form.transform((data) => ({
...data,
recaptcha_token: token, // recaptcha_token is required
})).post(route('login'))
});
- Run
php artisan view:clear
to clear the view cache