Laravel ilə Google ReCaptcha inteqrasiyası
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 false
olaraq cavab qaytarılacaq. Daha ətraflı Google -dan baxa bilərsiz.
Daha sonra tokenin tədiqlənməsi üçün google recaptcha-nın verdiyi url-ə sorğu göndəririk.
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.