جهت استفاده از Google Recaptcha در ثبت نام لاراول، یه سری پکیج و … وجود داره ولی من ترجیه میدم از پکیج خود گوگل استفاده کنم.
ابتدا این موارد را در .env سایت خودتون قرار بدید و تنظیماتش رو از سایت گوگل بردارید:
CAPTCHA_SITE_KEY= CAPTCHA_SECRET_KEY=
سپس در فایل resources/views/auth/register.blade.php این دستورات را وارد کنید:
<div class="form-group row"> <div class="col-md-6 offset-md-4"> <div class="g-recaptcha" data-sitekey="{{ env('CAPTCHA_SITE_KEY') }}"></div> @if ($errors->has('g-recaptcha-response')) <span class="invalid-feedback" style="display: block;"> <strong>{{ $errors->first('g-recaptcha-response') }}</strong> </span> @endif </div> </div>
توی فایل layout این رو قبل از تگ head قرار بدید:
@yield('head')
حالا در فایل register.blade.php این دستورات رو قرار بدید:
@section('head') <script src='https://www.google.com/recaptcha/api.js'></script> @endsection
در ترمینال این دستور رو بزنید:
composer require google/recaptcha "~1.1"
یه شرط بسازید برای validation از طریق ترمینال:
php artisan make:rule Captcha
فایل app/Rules/Captcha.php رو باز کنید و به این صورت تغییر بدینش:
<?php namespace App\Rules; use Illuminate\Contracts\Validation\Rule; use ReCaptcha\ReCaptcha; class Captcha implements Rule { /** * Create a new rule instance. * * @return void */ public function __construct() { // } /** * Determine if the validation rule passes. * * @param string $attribute * @param mixed $value * @return bool */ public function passes($attribute, $value) { $captcha = new ReCaptcha(env('CAPTCHA_SECRET_KEY')); $response = $captcha->verify($value, $_SERVER['REMOTE_ADDR']); return $response->isSuccess(); } /** * Get the validation error message. * * @return string */ public function message() { return 'Complete the reCAPTCHA to submit the form'; } }
فایل app/Http/Controllers/Auth/RegisterController.php رو باز کنید و متود validation رو تغییر بدید:
use App\Rules\Captcha; protected function validator(array $data) { return Validator::make($data, [ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'password' => 'required|string|min:6|confirmed', 'g-recaptcha-response' => new Captcha() ]); }
به همین سادگی میتونید از Google Recaptcha در بخش ثبت نامتون استفاده کنید. در بقیه قسمت ها و فرم ها هم همینجوری میتونید ازش استفاده کنید.
دیدگاهتان را بنویسید