Google Google reCAPTCHA VueJs

以Vue 實作 Google 機器人驗證 V3

蔣承翰 2019/12/22 23:45:28
5632

前言- 

   Google Recaptcha 是各大網站常見的防堵機器人的驗證方法,而V3版本則是讓驗證不再需要使用者回答問題即可通過驗證,因為Google Api會根據使用者在瀏覽器上的行為,以演算法來辨識使用者是否為機器人。

   

   Recaptcha與網站的互動大概流程如下:

   1. 網站前端向Google API拿取認證 token

   2. 前端以token向後端AP發送

   3. 後端AP再以此token向Google API驗證

 

   而本篇將介紹: 

   1. 如何申請Google Recaptcha 

   2. 將Google Recaptcha 套用到網站上 

  

申請Google Recaptcha 金鑰 -

    開發人員需先到 https://www.google.com/recaptcha/intro/v3.html 註冊你的新網站並拿取你的金鑰。

 

 

註冊新網站時記得選擇reCAPTCHA v3,並且新增網站的domain或IP,新版的reCAPTCHA還可以在開發階段中運行,所以也記得加上localhost吧。

 

 

完成註冊後便可以拿到你的金鑰了,SiteKey與SecretKey,要記得妥善保管。

到這裡就已經完成了reCaptcha的註冊步驟,「前往設定」是修改開發人員網站設定、「前往分析」是分析網站中行為的統計表。

 

接下來就轉往Vue 實作的部分。

 

 

Vue-Recaptcha -

目前有兩個套件提供Vue來使用Google Recaptcha,筆者選擇目前使用人數最多的這套。

 

可以在npm的文件上稍微看一下介紹:

https://www.npmjs.com/package/vue-recaptcha

 

 

實作 –

  在安裝完npm套件後,我們就可以來實作頁面與API了。

  

  步驟一:

   為了與Google API取得聯繫,我們需要先將一段script放在網站的共用header中。

<script src="https://www.google.com/recaptcha/api.js?onload=vueRecaptchaApiLoaded&render=explicit" async defer></script>

 

 

 

步驟二:

   在vue頁面宣告我們要引用vue-recaptcha 套件。

 

 

 

步驟三:

   在頁面template中使用vue-recaptcha組件,並且放入你的siteKey。

 

 

步驟四:

  在Vue method中撰寫與後端AP溝通的方法。

 

至此便完成了前端實作的部分。

 

 

步驟五:

  在後端撰寫與Google API溝通的方法。

 

在這邊我們可以先看看前後端溝通的情況,並且觀察Google API的回應是如何。

 

首先是先在前端寫一段console:

 

然後在後端直接把Google API Response 回傳給前端:

 

 

然後我們便可以在瀏覽器的開發人員工具上觀看此段console了

 

 

接下來我們只需要把API回應的訊息包裝成我們所需要的格式就完成了整個實作了。

 

完成畫面如下:

 

結論:

相比起前代的Google Recaptcha ,v2版Recaptcha需要回答相關問題或點選圖片,v3版Recaptcha 在網站上更不顯眼也讓使用者更加方便與省時。

如果你是網站使用者,你會選擇用哪一個版本呢?

 

Reference:

https://itnext.io/how-to-use-google-recaptcha-with-vuejs-7756244400da

https://www.npmjs.com/package/vue-recaptcha

https://developers.google.com/recaptcha/intro

 

蔣承翰
28CD5FF1EBC26DE7CE2B79CA0662B45D
2021/05/19 18:18:01

其實你是用 v3 的 sitekey render 了一個 v2 的 reCAPTCHA 喔, v3 的 key 可以直接用 v2 ,但反過來是不行的,至於為什麼我會知道呢?因為 vue-recaptcha 根本還沒支援 v3 ,而我就是 vue-recaptcha 的作者…