تاریخ امروز:2 دی 1403
آموزش استفاده از google recaptcha در بخش ثبت نام لاراول

آموزش استفاده از Google Recaptcha در بخش ثبت نام لاراول

جهت استفاده از 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  در بخش ثبت نامتون استفاده کنید. در بقیه قسمت ها و فرم ها هم همینجوری میتونید ازش  استفاده کنید.

 

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *