Laravel ilə Google ReCaptcha inteqrasiyası

Farid Babayev
Kodera
Published in
2 min readJan 31, 2018

Salam dostlar, bu gün biz Laravel framework-ündə yazılmış web saytın əlaqə formunda google recaptcha-nın quraşdırılmasını öyrənəcəyik

İlk öncə bizim recaptcha yarada bilməyiniz üçün Google Hesabınıza ehtiyac olacaq.

Localhost-da test üçün istifadə oluna bilər

Google recaptcha-dan qeydiyyatdan keçəndən sonra sizə bir ədəd açar soz (key) və gizli söz (secret) verilir.Daha sonra həmin açar sözlərini .env faylına əlavə edirik.

GOOGLE_RECAPTCHA_KEY=6LdB6BAUAAAAAA33OmfV0MWH0bdedefQNyYuQdEu5
GOOGLE_RECAPTCHA_SECRET=6LdB6ERTUAAAAAFm6lq5AWir_frgabrQqv177-665

İstəsəz siz .env faylında adını fərqli yaza bilərsiz.Mən test üçün GOOGLE_RECAPTCHA qoyuram.

Yuxarıdakı açar sözləri (key/secret) istifadə etməyin.Bunlar test üçün əlavə edilmişdir.

Daha sonra əlaqə formunun içinə aşağıdakı kodu əlavə edirik.

<div class="g-recaptcha" 
data-sitekey="{{env('GOOGLE_RECAPTCHA_KEY')}}">
</div>

Recaptcha-nın yaranması üçün html-ə javascript-i əlavə etməliyik.

<script src='https://www.google.com/recaptcha/api.js'></script> 

Ən sonda aşagıdakı kimi checkbox görsənəcək.

Bəs recaptcha necə işləyir?

İstifadəçi mən “mən robot deyiləm”-i seçəndə google recaptcha bizim üçün bir token yaradir ve istifadəçi mesaj göndərəndə form-da digər məlumatlar arasında həmin token-de göndərilir(g-recaptcha-response adında).

Bəs biz necə bilə bilərik ki, göndərilən məlumatlar botlar tərəfindən deyil real istifadəçi tərəfindən göndərilib?

Bunu dəqiq öyrənmək üçün biz google recaptcha-ya sorğu göndərməliyik. Əgər token həqiqətən varsa və real istifadəçi tərəfindən yaradılıbsa google recaptcha-dan bizə cavab olaraq boolean dəyərində true ya da falseolaraq cavab qaytarılacaq. Daha ətraflı Google -dan baxa bilərsiz.

Google ReCaptcha Documentation

Daha sonra tokenin tədiqlənməsi üçün google recaptcha-nın verdiyi url-ə sorğu göndəririk.

PageController

Mən sorğu göndərmək üçün Guzzle paketindən istifadə elədim. Əgər sizin layihənizə paket yüklü deyilsə composer require guzzlehttp/guzzle yazıb yükləyə bilərsiz.

Bu qədər 🙂

--

--