v2 Nevidna CAPTCHA

Na tej strani bomo predstavili kako implementirati orodje nevidna CAPTCHA na strani odjemalca. Podobno kot v ostalih primerih, je potrebno tudi tukaj verodostojnost podatkov dodatno preveriti na strežniku. Več o tem si lahko preberete v poglavju Validiranje na strani strežnika.

V tem poglavju bomo uporabili tudi nekaj funkcionalnosti, ki so podrobneje opisane v poglavjih o konfiguraciji.

Samodejno proženje z vezavo na gumb

To je najpreprostejši način implementacije tega orodja. Podobno kot pri primeru v prejšnjem poglavju, tudi tukaj v vežemo class z vrednostjo g-recaptcha in data-sitekey z javnim ključem na vsebnik. Posebnost tega primera je, da je vsebnik določen button ali input element in ne div, kot je bilo to v prejšnjem primeru.

Pri tem pazimo, da definiramo še data-callback v kolikor gre za gumb, ki potrdi formo. V definirani funkciji potem ročno potrdimo obrazec, saj se ta samodejno ne bo. V to funkcijo nam reCAPTCHA vrne tudi geslo, ki ga moramo na strani strežnika dodatno potrditi.

Ročno proženje z vezavo na gumb

Postopek za ta obliko je zelo podoben prejšnji, le da se razlikuje v načinu klicanja orodja. V prejšnjem primeru, se je namreč orodje naložilo že samodejno v ozadju po samem uvozu skript. V tem primeru, pa bomo to storili ročno.

Pri samem uvozu skripte, je potrebno dodatno definirati paramter render z vrednostjo explicit.

<script src=”https://www.google.com/recaptcha/api.js?render=explicit“></script>

S tem definiramo, da se naj skripta uvozi, vendar se naj CAPTCHA ne prične izvajat. Za to poskrbimo z klicem reCAPTCHA funkcije render() nad objektom grecaptcha, kar lahko storimo po kliku na določen gumb.

Ročno proženje orodja

Orodje nam omogoča tudi, da se sploh ne začne zbiranje podatkov ali kakršnokoli preverjanje. Za to sta potrebna dva dodatna koraka. Zraven definiranja class in data-sitekey na vsebniku, je potrebno na samem vsebniku definirati še data-size="invisible", s čimer skrijemo vmesnik.

Nato je potrebno klicati še funkcijo explicit() na podoben način, kot smo to storilo z funkcijo render() v prejšnjem primeru.