How to Set Up Google reCAPTCHA on Your Website

Code Radiance
30 Oct 202117:59

Summary

TLDRThe video provides an overview of Google's reCAPTCHA service and how to integrate the 'I'm not a robot' checkbox in web pages to verify valid users and prevent bots. It covers the different reCAPTCHA versions, obtaining site and secret keys to render the checkbox, handling successful verification callbacks to get the response token, and using that token on the backend server to validate legitimacy via the reCAPTCHA API before allowing user access.

Takeaways

  • 😀 There are 3 types of reCAPTCHA services offered by Google - reCAPTCHA v2, v3 and Enterprise
  • 👉🏻 reCAPTCHA v2 allows adding an 'I'm not a robot' checkbox to validate users, with 1 million free verifications
  • 🔐 reCAPTCHA v3 scores user interactions to decide if requests seem automated or not
  • 💵 reCAPTCHA Enterprise offers advanced fraud detection and DDoS protection services
  • 🤖 The site key displays the checkbox widget, while the secret key verifies the response on the server
  • ✅ A successful verification returns a response token to submit back to Google for final validation
  • ⏳ Tokens are only valid for 2 minutes and can only be used once for verification
  • 👀 Google will verify if the token matches the secret key to confirm the user is human
  • 🎉 Success and error callbacks can be set up in code to handle the verification response
  • 💡 The reCAPTCHA APIdocumentation has more details on advanced usage and other versions

Q & A

  • What are the different types of reCAPTCHA services offered by Google?

    -Google offers three types of reCAPTCHA services - reCAPTCHA version 2, version 3, and reCAPTCHA Enterprise. Version 2 allows adding the 'I am not a robot' checkbox, version 3 works by scoring user interactions, and Enterprise provides services like fraud detection and DDoS protection.

  • How does the reCAPTCHA version 2 service work?

    -reCAPTCHA version 2 allows adding an 'I am not a robot' checkbox to validate user requests. It also includes invisible verification. Google provides 1 million free verifications which should be sufficient for most free services.

  • What information is needed to integrate reCAPTCHA version 2 service?

    -To integrate reCAPTCHA version 2, you need a site key and a secret key, which are provided when you register your site on the reCAPTCHA admin console. The site key is used in the frontend and secret key in the backend.

  • What are the different callback functions available in reCAPTCHA?

    -There are three callback functions in reCAPTCHA - a success callback for successful validation, an expired callback when response expires, and an error callback for network issues.

  • What is the purpose of the response token provided by reCAPTCHA?

    -The response token provided after successful user validation is used to verify the legitimacy of the user on the backend server. It is posted to Google's server to confirm that Google has indeed verified that user.

  • Why can the same response token not be used more than once?

    -The response token is valid only for 2 minutes and can be used only once for verification. Reusing it results in a failed verification, ensuring bots cannot steal and reuse tokens.

  • How long is the reCAPTCHA response token valid for?

    -The response token provided by reCAPTCHA after successful user validation is valid only for 2 minutes. After that, it cannot be reused for verification.

  • Where should the reCAPTCHA secret key be used?

    -The reCAPTCHA secret key should only be used on the backend server and not exposed in the frontend code. The site key is used in frontend code shown to users.

  • What information does a successful reCAPTCHA verification response contain?

    -A successful reCAPTCHA verification response contains a 'success' boolean indicating pass/fail status, a 'challenge_ts' timestamp and the site's registered 'hostname'.

  • What are some use cases for adding a reCAPTCHA checkbox?

    -The reCAPTCHA checkbox is commonly added in forms where users input sensitive information or perform important transactions, like login forms, signup forms, contact forms, payment gateways etc to filter out bots.

Outlines

00:00

🤖 Overview of Google reCAPTCHA services

Paragraph 1 provides an introduction and overview of the video, which will demonstrate how to add the "I'm not a robot" reCAPTCHA checkbox to web pages. It outlines the different reCAPTCHA services offered by Google: v2 with checkbox validation, v3 with risk analysis scoring, and Enterprise suite. The focus will be on reCAPTCHA v2 and adding the checkbox.

05:01

🕸️ Registering reCAPTCHA and getting site & secret keys

Paragraph 2 shows how to register a site on the reCAPTCHA admin console to get the site key and secret key required for implementation. The site key renders the checkbox widget on the web page, while the secret key verifies the response on the server. A StackBlitz demo project is used to illustrate adding the domain where the checkbox will be hosted.

10:03

👩‍💻 Adding reCAPTCHA checkbox to web page

Paragraph 3 demonstrates two methods to add the reCAPTCHA checkbox to a web page: automatic rendering using a div, and explicit rendering using the grecaptcha.render JavaScript function. Callback functions are created to process the response token received upon successful user verification. The token is sent to Google's server to confirm validity before allowing user access.

15:06

✅ Verifying response token on server

Paragraph 4 shows how the response token received in the browser after user verification is sent to Google's server for additional confirmation using the secret key. A successful verification response confirms the legitimacy of the user interaction. The same token cannot be verified more than once within the valid period.

Mindmap

Keywords

💡reCAPTCHA

reCAPTCHA is a free service by Google that helps protect websites from spam and abuse. It uses advanced risk analysis techniques to tell humans and bots apart. The video focuses on reCAPTCHA version 2, which shows a checkbox for users to verify "I'm not a robot". After verification, a response token is sent back which can be validated on the server using the secret key.

💡response token

The response token is returned by reCAPTCHA after successful human verification. It is valid for only 2 minutes and can be used only once to verify the response. The token needs to be sent to Google's server along with the secret key to check if the verification was indeed done properly by a human.

💡secret key

The secret key is a unique key associated with each reCAPTCHA site registration. It should only be used on the server to verify the reCAPTCHA response tokens and should not be exposed in the client-side code or browser.

💡site key

The site key is used to display the reCAPTCHA widget on the webpage. Unlike the secret key, the site key is exposed to the client side as it renders the checkbox that users have to check.

💡callback functions

Callback functions in reCAPTCHA API allow handling the different responses - success, error or expiry callbacks. The success callback returns the response token on successful human verification. Error callback handles network issues while expiry callback is called when response expires and user needs to re-verify.

💡automatic rendering

Automatic rendering allows adding reCAPTCHA with just a div containing site key and data attributes. reCAPTCHA handles rendering the checkbox automatically on page load. The other option is explicit rendering by calling a JavaScript function.

💡invisible reCAPTCHA

Unlike version 2, the invisible reCAPTCHA does verification in the background without showing a checkbox to the user explicitly. It returns a score to determine if the request is valid or bot traffic, allowing blocking bad requests behind the scenes.

💡reCAPTCHA admin console

The reCAPTCHA admin console is used to register sites and domains to get the site & secret keys for integrating reCAPTCHA service. It provides options like email alerts, fraud detection to monitor suspicious activity.

💡reCAPTCHA Enterprise

reCAPTCHA Enterprise offers advanced bot and fraud detection capabilities like anomaly detection, risk analysis and provides protection against DDOS attacks for enterprise-level requirements beyond basic spam filtering of version 2.

💡explicit rendering

Unlike automatic rendering, explicit rendering involves calling a specific JavaScript function to render reCAPTCHA checkbox by passing necessary parameters like site key, callback etc. It allows more control but also needs more code.

Highlights

Google offers three kinds of reCAPTCHA services: reCAPTCHA version 2, version 3, and reCAPTCHA Enterprise.

reCAPTCHA version 2 allows adding an "I am not a robot" checkbox to validate user requests. It also includes invisible verification.

reCAPTCHA version 3 works by giving a score to user interactions, allowing decisions on rejecting or approving requests based on the score.

reCAPTCHA Enterprise provides fraud detection and protection services like DDoS protection.

The site key is used in the browser to create the reCAPTCHA checkbox container, while the secret key is used on the server.

The reCAPTCHA widget can be rendered automatically using a div, or explicitly by calling a JavaScript function.

Successful, expired, and error callbacks can be specified to handle reCAPTCHA responses.

The response token after successful validation is valid for 2 minutes and can be used once for verification.

The token is sent in a POST request to Google to verify it came from a legitimate user.

The POST request must include the secret key and response token as parameters.

If token verification succeeds, the response will have a success:true property.

Submitting the same token again results in a timeout/duplicate error.

There are other reCAPTCHA versions for invisible validation and Android.

See the developer guide for more details on using the reCAPTCHA APIs.

Thanks for watching this overview of adding a reCAPTCHA checkbox with callbacks.

Transcripts

play00:00

if you have been browsing internet and

play00:02

logging into websites then you must have

play00:04

seen and used the google's i am not a

play00:06

robot checkbox that checkbox is the

play00:09

google's recaptcha service and is used

play00:12

to identify valid users and filter out

play00:14

any bots or malicious requests

play00:17

so if you want to understand what are

play00:18

the google recapture services and how

play00:21

can we integrate the i am not a robot

play00:24

checkbox into your web pages then be

play00:27

sure to watch this video till the end

play00:30

now this video is divided into chapters

play00:32

so if you want to skip any part like you

play00:35

are only interested in the coding part

play00:37

then feel free to skip to that chapter

play00:39

also if you feel this video is

play00:41

interesting and helpful then please

play00:43

don't be shy and like the video and also

play00:46

subscribe to this channel to stay

play00:47

updated with more such kind of videos

play00:51

now before we start adding the recaptcha

play00:54

checkbox in a webpage first let's have a

play00:57

brief overview of different recapture

play00:59

services that google provides

play01:01

so basically google offers three kinds

play01:03

of recapture services first one is the

play01:06

recapture version two then there is a

play01:08

version three and then there is the

play01:10

recaptcha enterprise

play01:11

so recapture version 2 is the one where

play01:14

we can add the i am not a robot checkbox

play01:16

to validate the user's request

play01:19

it also includes invisible verification

play01:22

also google provides 1 million

play01:24

verifications for free which i believe

play01:26

should be sufficient as far as free

play01:29

services go second one is recaptcha

play01:32

version 3 and it works differently where

play01:35

it gives a score of user interaction and

play01:37

based on that score we can decide what

play01:40

to do with the user's request so if the

play01:42

score that the service provides when

play01:45

validating a user is low then we can

play01:47

decide to reject the user's request or

play01:50

to identify the user either as a bot or

play01:53

as a malicious user if the score is

play01:55

acceptable or if it is high enough then

play01:58

we can say yeah this user is valid and

play02:00

he can go through to use our services

play02:02

then there is the recaptcha enterprise

play02:04

which provides an entire suite of

play02:06

services for fraud detection and other

play02:09

services such as ddos protection etc you

play02:12

can find more about it if you want to by

play02:15

going to this url of google recapture

play02:18

but in this video i'm going to talk

play02:20

about recaptcha version 2 where we are

play02:22

going to add a recaptcha i am not a

play02:25

robot checkbox and i will show you how

play02:27

we can take the help of google in

play02:29

verifying if the user is a valid user or

play02:32

if it is a malicious user etc so without

play02:35

wasting any more time let's begin now

play02:38

the first thing that you need to do is

play02:39

to open up the

play02:40

admin console of google recapture and

play02:43

then login into your account if you are

play02:45

not yet logged in when you will open up

play02:47

the console then if you do not have any

play02:51

recapture services enabled for any of

play02:53

your hosts or domains then it will ask

play02:56

you to register a new site the first

play02:58

thing that you need to do is to give in

play03:01

the name of the label so i'm just going

play03:03

to give the name as test

play03:06

now for recapture type i am going to

play03:08

select recapture version 2 because this

play03:10

is the one where we are going to add the

play03:12

i am not a robot checkbox it also

play03:15

provides two more services where

play03:17

it validates the requests in the

play03:19

background and the third one is for

play03:20

android but in this video we are going

play03:22

to see how we can add this checkbox next

play03:25

you will have to add the domain so i

play03:27

will come to this part later because i

play03:29

will show you how i am going to do that

play03:31

for this video this is the email address

play03:33

of owners so

play03:35

your email address will come here as

play03:37

default you can add more email addresses

play03:40

to receive any kind of notifications

play03:42

from google let's say google detects

play03:44

that someone is maliciously trying to

play03:47

use our web application so it can notify

play03:50

us by means of sending emails to the

play03:53

owner's email addresses and then you

play03:55

will have to accept the recapture terms

play03:56

of service and this checkbox send alert

play03:59

to owners is checked by default so i

play04:01

have already told you what this will do

play04:03

it will detect problems and if it does

play04:06

then it will send the owners

play04:07

notifications about those malicious

play04:10

users now let's come to the part where

play04:12

we have to add a domain so to do that

play04:15

i have created a new static html

play04:18

javascript and css application

play04:20

in stack blitz so stack blitz is an

play04:23

online platform where you can create

play04:26

different kinds of projects like angular

play04:27

react view etc and then you can compile

play04:30

those projects and see how they look

play04:32

like when

play04:33

compiled and when they are running in

play04:35

the browser so in this project there are

play04:37

three files first one is the index.html

play04:40

file then there is a

play04:41

script file and then there is a

play04:42

style.css so usually we use the i am not

play04:46

a robot checkbox when a user is trying

play04:48

to log in because we want to make sure

play04:50

that a genuine user is trying to log in

play04:52

and not a bot or any other malicious

play04:55

user is trying to login so what i'm

play04:57

going to do is i'm going to add the

play04:58

checkbox the i'm not a robot checkbox

play05:00

below this login button but i was

play05:03

talking about how to add the domain name

play05:06

and if you will pay attention stack

play05:09

blades provide you a url which you can

play05:12

use to access your application your

play05:14

built or bundled application from

play05:16

anywhere on the web so i'm just going to

play05:19

use this url and we don't have to enter

play05:22

the https we just have to use the

play05:25

domain name or the host name so let's

play05:28

just do that

play05:30

now we have added everything and it's

play05:32

time to submit

play05:34

so test has been registered and the

play05:37

google's recaptcha has created two keys

play05:39

for us first one is the site key and the

play05:41

second one is the secret key so site key

play05:44

is the key which we use in the browser

play05:47

and the secret key is the one which we

play05:48

use

play05:49

on our server so do not expose this

play05:52

secret key the side key is going to be

play05:54

exposed anyway so it doesn't really

play05:55

matter if anyone knows about it or not

play05:58

because you are going to use this key to

play05:59

create the checkbox container within

play06:01

your web page so now when we have the

play06:03

site key and the secret key it's time to

play06:06

create the i am not a robot component or

play06:09

widget and place it on this webpage

play06:11

below this login button now there are

play06:14

two ways in which the recaptcha widget

play06:16

can be rendered the first one is it will

play06:18

render automatically where we will use a

play06:20

div and the second one is we will render

play06:23

it explicitly by creating a javascript

play06:26

function so let's first see how we can

play06:28

add the widget automatically now the

play06:30

first thing that we need to do is we

play06:32

need to add the

play06:33

script element

play06:35

so let's do that and add it

play06:37

below this script

play06:39

this is the url of the captcha api

play06:42

script and we have to load it in the

play06:43

async default mode the next thing that

play06:45

we need to do to automatically add the

play06:48

recaptcha widget is to add a div element

play06:50

below this login button so i'm just

play06:52

going to create a new div element now in

play06:55

this div element first we have to add

play06:57

the

play06:58

class attribute and its value is going

play07:00

to be g recaptcha and then we will have

play07:03

to add the

play07:04

site key attribute so

play07:07

for that

play07:08

we are going to copy the value of the

play07:10

site key from over here when we created

play07:14

or registered our new recaptcha so let's

play07:17

just do that i'm going to paste it over

play07:19

here

play07:21

so whenever we make any changes then the

play07:23

page on the right side is going to

play07:25

refresh automatically so you can see

play07:27

that the recaptcha

play07:29

widget has been added and right now this

play07:32

widget is working but we will also need

play07:35

to handle the outcome of the widget like

play07:38

if the google is going to validate the

play07:40

user when they will click on this

play07:42

checkbox then we will need to know if

play07:44

the validation or the verification was

play07:47

successful or not to do that we use

play07:49

callbacks but before that i am going to

play07:51

show you the explicit way of adding this

play07:53

widget where we will not be adding the

play07:56

site key within this div element and we

play07:59

will be using a function which will act

play08:01

as the callback whenever the

play08:03

recaptcha api will be loaded let me just

play08:07

zoom it so that you can see it

play08:09

so to add the captcha explicitly the

play08:11

first thing that i will do is i will add

play08:14

a script callback function

play08:16

so i'm going to add this function within

play08:18

this html page

play08:20

within a new script element

play08:24

so let's first create a new function

play08:26

with the name

play08:28

on load callback

play08:32

now we need to add two parameters to

play08:34

this source value and those two

play08:37

parameters are going to be

play08:38

the onload parameter and the render

play08:41

parameter so we need to add these two

play08:43

parameters onload is going to point to

play08:46

the callback function which we just

play08:47

created on callback and render is going

play08:50

to have the value explicit now you have

play08:52

to make sure that the callback function

play08:54

should be available or should be loaded

play08:56

before the recaptcha script loads now to

play08:58

ensure that you can order the callback

play09:01

function before the recaptcha script

play09:03

like i have done here

play09:04

in another script element and you can or

play09:07

you have to use the async and default

play09:10

tags within the script element which is

play09:12

pointing to the recaptcha api javascript

play09:14

file so now to explicitly render the

play09:17

captcha

play09:18

we need to call g

play09:22

recaptcha function and we need to call

play09:26

render

play09:29

now the first argument is going to be

play09:30

the name of the element which is

play09:33

going to contain the widget and after

play09:35

that we are going to provide an options

play09:38

object with more information like the

play09:40

site key and the callback etc so let's

play09:42

just do that now if you remember we have

play09:45

already created a div but we provided

play09:47

the side key in that div so i'm going to

play09:49

remove the side key attribute from this

play09:51

div and

play09:52

i am going to

play09:54

you know what provide an id to this div

play09:57

so let's call it as div

play09:59

recaptcha and let's copy this id and

play10:03

paste it into or place it or provide it

play10:05

as the first argument for g captcha dot

play10:08

render function now let's provide the

play10:10

site key so site key property is going

play10:12

to

play10:14

have the same value just copy it from

play10:16

over here from recaptcha

play10:19

admin console and then paste it

play10:21

the widget is now here but then we will

play10:24

also need to provide a callback function

play10:25

so we need to create a new callback

play10:27

function

play10:28

so before we do that let's first talk a

play10:30

little bit about these callback

play10:32

functions to capture the response from

play10:34

recaptcha after the user interacts with

play10:37

it there can be three kinds of responses

play10:39

and we can specify callbacks for them

play10:41

the first one is going to be a normal or

play10:43

a successful callback so when the

play10:45

response is successfully submitted by

play10:47

the user then this callback gets called

play10:50

for any successful callback a response

play10:52

token will also be received as an

play10:54

argument and then i will show you what

play10:56

we can do with that response token and

play10:58

for that we can either add the data

play11:01

callback attributes to the widget div

play11:04

when we are adding this

play11:06

widget automatically otherwise we can

play11:08

provide it as a property within this

play11:10

options object when we are calling this

play11:12

g recaptcha dot render function the

play11:14

second kind of callback is the expired

play11:16

callback this is called when the

play11:18

response expires and the user needs to

play11:20

resubmit

play11:21

the recaptcha response the third one is

play11:24

an error callback which is usually

play11:27

called when there is some kind of

play11:28

network connection problem and we need

play11:30

to notify the user about this specific

play11:33

issue that there is some kind of issue

play11:35

with their network and for that reason

play11:37

the recapture service is not going to

play11:39

work the expired callback can be added

play11:41

by using the data expired callback

play11:43

attribute and the error callback can be

play11:46

wired up using the data error callback

play11:48

now i'm going to create a new callback

play11:50

function

play11:51

and the callback function is going to be

play11:54

created in this script.js file

play11:56

so i'm going to remove this console.log

play11:59

statement and then let's create a new

play12:02

function and let's just call it success

play12:05

callback

play12:08

now within this i'm just going to

play12:09

provide a debugger

play12:11

let's go to index.html again and

play12:14

let's provide the name or the reference

play12:16

of the callback function so

play12:20

success callback now for some reason i'm

play12:23

still not seeing the widget so maybe

play12:25

the callback function yep there is a

play12:28

typo over here so

play12:30

now you can see that the callback has

play12:31

been provided and now i'm going to click

play12:34

on this i'm not a robot checkbox and we

play12:36

will receive a response if it is

play12:38

successful then the code execution is

play12:40

going to

play12:41

break over here at this point where i

play12:43

have placed debugger but to test this

play12:45

one i am going to copy this url and then

play12:48

open it up in a new

play12:49

chrome tab

play12:50

so let's do it and open up the console

play12:53

and now let's click on this i am not a

play12:55

robot checkbox you can see that we have

play12:58

received a callback but because i have

play13:00

not added any argument over here for the

play13:02

response the way to check it is to add

play13:05

the arguments

play13:09

in the watch

play13:11

you can see that arguments has only a

play13:13

single argument which is the response

play13:16

the token which the google recapture

play13:18

service has sent back to us after

play13:21

successfully verifying the user clicking

play13:24

on this i am not a robot checkbox so

play13:26

what i'm going to do is i'm going to add

play13:28

an argument over here now you must be

play13:30

thinking what the hell is this response

play13:32

token well don't worry i will tell you

play13:34

that too the token received after a

play13:36

successful validation is valid for only

play13:39

two minutes and can be used once for

play13:41

verification and when we have got the

play13:43

response token in the browser then we

play13:46

are going to use this token to post a

play13:48

request to the google's recaptcha url

play13:51

but that request is going to be posted

play13:54

from the server instead of this browser

play13:56

so here is what the concept is google

play13:58

verified the user for us but now again

play14:01

we have to go to google and give it the

play14:03

token and ask hey google you just

play14:06

verified this guy as a real human and

play14:08

you gave me this token please check if

play14:10

this token is indeed correct if the

play14:12

token is correct then google will say

play14:14

yeah dude the token is correct and the

play14:16

guy is indeed a human now if a malicious

play14:19

script steals your token and sends it to

play14:22

our server within two minutes which is

play14:24

the time for which the token will remain

play14:26

valid the same token cannot be used

play14:28

twice also a token is associated with an

play14:31

account which involves a secret key and

play14:33

host name so the token generated in

play14:36

another host will also not be valid for

play14:38

our host let's now see how this can be

play14:41

done

play14:42

so for this application i have not

play14:44

created a back end so we will be using

play14:46

the postman app to send the post request

play14:49

and then verify the response so this is

play14:52

the postman application and you can use

play14:54

it to send a bunch of different kinds of

play14:55

requests you can select the type of the

play14:57

request from over here by clicking on

play14:59

this triangle now we need to send a post

play15:02

request the url is going to be this one

play15:06

google.com slash recaptcha and then api

play15:08

site verify now when we are posting a

play15:11

request on this url we will also need to

play15:14

provide two parameters the first

play15:15

parameter is going to be our secret key

play15:18

if you remember i told you that we need

play15:20

to use the secret key on our server the

play15:23

second parameter is going to be the

play15:25

token or the response token which google

play15:28

has sent us after the user has clicked

play15:31

on the i am not a robot checkbox so

play15:34

first let's add the secret key parameter

play15:37

and the value is going to be this one

play15:39

let's just copy it from over here and

play15:41

then

play15:42

paste it in the value the second one is

play15:44

going to be

play15:45

response

play15:47

so we can copy response when we will

play15:50

click on the i am not a robot checkbox

play15:53

let's reload this page again and then

play15:54

copy the token value from the

play15:58

browser console so

play16:00

let's click on this i am not a robot

play16:01

checkbox

play16:02

now remember this token is only valid

play16:04

for two minutes so we must hurry now i'm

play16:07

just going to copy the value and

play16:10

let's press ctrl c open up the postman

play16:13

app and then i think i will need to

play16:15

remove this quotes because they may not

play16:17

be needed

play16:18

and then

play16:19

send it

play16:20

you can see that we have received a

play16:21

response and if the response is

play16:24

successful then we will get three values

play16:27

the success property is going to have

play16:29

the value either true or false if the

play16:32

verification is successful then it will

play16:34

return true google will say yeah the

play16:36

token is indeed for a legitimate user

play16:39

and we can allow the user to enter our

play16:41

system or use our application the second

play16:43

one is the challenge underscore ts which

play16:45

is the time stamp at which the challenge

play16:48

was received and the third one is the

play16:50

host name so host name is the one which

play16:53

we have provided

play16:54

when we were registering our application

play16:57

or our web page or our web host to

play16:59

google's recaptcha

play17:01

and this host name is associated with

play17:03

this

play17:03

name or label test

play17:05

now let's try to post this same request

play17:07

again so because the same request cannot

play17:10

be

play17:11

verified twice so if i will post it

play17:13

again then you can see that success is

play17:16

now false and there is another property

play17:18

with an array

play17:20

timeout or duplicate it says that it is

play17:22

either a timeout issue or either it is a

play17:25

duplicate token because we have already

play17:27

used this token to verify the legitimacy

play17:30

of the user so that was all about the

play17:33

google recaptcha version 2 checkbox

play17:36

there are two more variants of this api

play17:38

this one is for the invisible mode and

play17:41

there is the other one which is for

play17:43

android do check them out if you want to

play17:45

and if you want to see how to use them

play17:47

then you can always check out this

play17:49

developer guide i have shared this link

play17:52

in the video's description and finally

play17:54

thanks for watching this video i am

play17:56

nitej take care and have fun

Rate This

5.0 / 5 (0 votes)

¿Necesitas un resumen en inglés?