1)客戶端從服務端獲取驗證碼 JS 文件
2)客戶端嵌入驗證碼JS頁面(iframe形式)
3)用戶完成驗證碼驗證
4)客戶端獲得驗證 ticket,並提交服務端進行二次驗證
5)服務端通過天禦服務器接口進行ticket驗證
服務端主要有兩個接口:
1) 後臺獲取驗證碼js地址
2) 後臺驗證票據API
騰訊雲的API請求由兩類請求參數:公***請求參數和接口請求參數。公***請求參數的首字母均為大寫,接口請求參數首字母為小寫。對於公***請求參數的生成可以參考 官方文檔 ,難點在於公***參數中 Signature 字段生成,這裏有壹份較為詳細的 簽名方法文檔 。
雖然嘗試過動手工生成請求參數,但文檔中的描述與實際接口的要求不相符,始終沒有成功。最終,通過這個庫 —— 騰訊雲 API 2.0 SDK for node.js ,完成API參數的生成。
其中,返回值的 code 字段。0表示成功,其他值表示失敗。
主要流程如下:
1)從後端獲取 JS SDK 地址
2)動態加載 JS 文件
3)初始化驗證碼服務,註冊回調事件,並綁定到DOM節點中
從接入文檔和接入方式看,防水墻的接入防水比較簡單且文檔很詳細、準確。天禦的文檔則含糊不清,文檔中字段與實際接口字段有出入,聯系專業客服人員也不回答。接入起來有壹定成本。
本來打算將天禦作為主要驗證碼服務,奈何文檔太爛,又沒有Node的SDK,管理後臺又不好用,最後放棄了。(瘋狂甩鍋 (╯°□°)╯︵┻━┻)
有意思的是,騰訊天禦的公***參數設定方式與阿裏雲的公***參數設定方式大同小異。很好奇,是誰借鑒誰的。