首先介紹reCAPTCHA的使用時機和流程。reCAPTCHA可以用來防範機器人登入,假設有人用自動化的腳本或是其他非正規方式登入的話,reCAPTCHA會幫忙做第一關的防護。使用時機通常都是註冊、登入等比較重要的表單上面驗證。
常見的紅綠燈驗證、我不是機器人驗證都是reCAPTCHA,當然現在除了Google reCAPTCHA還有其他形形色色的驗證,像是大陸人寫的captcha還有拼圖遊戲等。現在Google reCAPTCHA服務主要有ckeckbox, invisible, score,那本篇介紹的驗證流程主要在登入頁使用reCAPTCHA,驗證流程會先以score為主,若score驗證分數低於某個值後啟用checkbox驗證跳出我不是機器人驗證。
由於前後分離的關係,驗證的分數以及Token的讀取都在後台,這裡只會介紹前台負責的部分。首先先介紹如何在環境中設定reCAPTCHA
以上是官方提供的掛載方法,但問題是nuxt根本沒有可以掛html的地方呀?那怎麼辦?
nuxt 並沒有 index.html的環境,取而代之環境設定在nuxt.config.js,在RECAPTCHA_ON_LOAD_FILE裡面掛 reCAPTCHA的腳本。我們立一個flag觀察 reCAPTCHA 是否準備好。
登入畫面為這次主體,那裡的loading為用來等待時間的flag。流程主要為一進去登入畫面為reCAPTCHA score,若第一次登入未成功後開始啟用reCAPTCHA checkbox驗證。