Google reCAPTCHA را در ثبت نام لاراول بریز اضافه کنید

در این پست، گام به گام شما را راهنمایی می کنم که چگونه چک باکس Google reCAPTCHA v2 را به فرم ثبت نام لاراول بریز اضافه کنید. من از بسته NoCaptcha Laravel استفاده خواهم کرد. ادغام reCAPTCHA در برنامه شما به جلوگیری از ثبت نام خودکار هرزنامه کمک می کند.
## مرحله 1: به دست آوردن کلیدهای reCAPTCHA
به وب سایت Google reCAPTCHA (https://www.google.com/recaptcha) بروید و با حساب Google خود وارد شوید. روی علامت + کلیک کنید و مشخصات را به صورت زیر وارد کنید:
برچسب: از نام دامنه برنامه خود استفاده کنید
نوع reCAPTCHA: چالش(v2) را انتخاب کنید و تیک I’m not a robot را بزنید
دامنه: در مورد ما 127.0.0.1 را اضافه کنید زیرا در یک ماشین محلی هستید، اما می توانید بعداً آن را به نام دامنه خود یک بار در سرور زنده تغییر دهید یا فقط نام دامنه مورد استفاده خود را اضافه کنید.
برای ایجاد کلیدهای سایت خود روی ارسال کلیک کنید
پس از ایجاد کلیدها، آنها را کپی کرده و در جای دیگری قرار دهید زیرا بعداً مورد نیاز خواهند بود.
مرحله 2: بسته NoCaptcha Laravel را نصب کنید
برای نصب بسته NoCaptcha این دستور را اجرا کنید.
composer require anhskohbo/no-captcha
پس از نصب بسته، فایل config/app.php خود را باز کنید و خط زیر را به آرایه ارائه دهندگان اضافه کنید.
Anhskohbo\NoCaptcha\NoCaptchaServiceProvider::class,
سپس دستور زیر را برای انتشار فایل پیکربندی بسته اجرا کنید.
php artisan vendor:publish --provider="Anhskohbo\NoCaptcha\NoCaptchaServiceProvider"
مرحله 3: پیکربندی بسته NoCaptcha
تولید شده را باز کنید config/nocaptcha.php فایل. در این فایل، باید NOCAPTCHA_SECRET و NOCAPTCHA_SITEKEY را در فایل env. عرضه کنیم.
به فایل .env بروید و کلیدهای سایت خود را مطابق شکل زیر قرار دهید
مرحله 4: به روز رسانی نماهای ثبت نام لاراول بریز
باز کن resources/views/auth/register.blade.php فایل. و موارد زیر را قبل از دکمه ارسال اضافه کنید.
<!-- google recaptch -->
<div class="mt-4">
{!! NoCaptcha::renderJs() !!}
{!! NoCaptcha::display() !!}
@if ($errors->has('g-recaptcha-response'))
<x-input-error :messages="$errors->first('g-recaptcha-response')" />
@endif
</div>
مرحله 5: به روز رسانی Laravel Breeze Registration Controller
باز کن app/Http/Controllers/Auth/RegisteredUserController.php فایل. و کد زیر را به متد store اضافه کنید تا پاسخ reCAPTCHA تایید شود.
$this->validate($request, [
// Existing validation rules...
'g-recaptcha-response' => 'required|captcha',
],['g-recaptcha-response' => 'Please Verify you are not a robot']);
توجه داشته باشید: [‘g-recaptcha-response’ => ‘Please Verify you are not a robot’] برای تنظیم پیام کاربر پسندتر در صورت بروز خطا استفاده می شود.
سرور را راه اندازی کنید و به آن بروید http://localhost:8000/register
باید چک باکس جدید Google Recaptcha را ببینید