圖形驗證碼服務(wù)接入(四)阿里云盾接入

接入可參考項目工程:https://github.com/youthcity/graph-captcha

調(diào)用流程

調(diào)用流程

上圖為官方提供的調(diào)用流程圖,服務(wù)端只需關(guān)心紅框中的內(nèi)容:

  1. 客戶端驗證通過后獲取到驗證參數(shù)
  2. 將驗證參數(shù)傳到服務(wù)端進行驗簽

接入

服務(wù)端接入

服務(wù)端接入可參考官方文檔:https://help.aliyun.com/document_detail/66341.html?spm=a2c4g.11186623.6.574.4a11169bnSpGO7

若使用 Java、.NET、PHP、Python等語言,可以使用官方提供的服務(wù)端SDK進行接入。若是其他語言(比如NodeJS),則只能通過調(diào)用官方API的形式。需要指出的是,官方的API文檔并不準(zhǔn)確。例如,人機驗證的HOST地址文檔中為 http://jaq.aliyuncs.com/,實際應(yīng)為 http://afs.aliyuncs.com。公共參數(shù)中API版本號文檔中為 2016-11-23,實際應(yīng)為 2018-01-12

若在接入的過程中,遇到困難,盡早提工單聯(lián)系阿里云的專員解決。上述,提到的文檔問題,已經(jīng)向阿里云的專員反饋,但是文檔還沒有改正過來。大家可以參看我的代碼實現(xiàn)接入。

阿里云的API和騰訊云的API類似,都是由公共參數(shù)與業(yè)務(wù)參數(shù)組成。為了避免自己拼裝路由出現(xiàn)錯誤,使用了官方包 @alicloud/pop-core,完成這些接口參數(shù)的生成與拼接。服務(wù)端主要代碼如下:

// https://github.com/youthcity/graph-captcha/blob/master/src/ali_afs/client.ts

  constructor(config:Config) {
    this.access_key_id = config.access_key_id;
    this.access_key_secret = config.access_key_secret;

    this.client = new RPCClient({
      accessKeyId: this.access_key_id,
      accessKeySecret: this.access_key_secret,
      endpoint: 'http://afs.aliyuncs.com',
      apiVersion: '2018-01-12',
      codes: [100, 900],
    })
  }

  public async verify(params:VerifyParams) : Promise<boolean> {
    const ACTION_TYPE = 'AuthenticateSig';
    let is_pass = false;
    try {
      const res = await this.client.request(ACTION_TYPE, params);

      if (res && res.Code == AFSCode.PASS) {
        is_pass = true;
      }

    } catch (error) {
      console.log(error);
    }

    return is_pass;
  }

客戶端接入

Step 1 阿里云數(shù)據(jù)風(fēng)控控制臺,申請應(yīng)用

路徑:人機驗證 —— 新增配置

配置應(yīng)用

經(jīng)過與阿里云的專員確認,表單中 高峰期PV 字段可以隨意填寫,并不會影響驗證服務(wù)使用。我們需要根據(jù)自己的應(yīng)用類型、驗證方式進行填寫。客戶端接入是與這些配置強關(guān)聯(lián)。(因為這個原因,我們最后放棄了阿里云盾作為驗證碼服務(wù)??蛻舳私尤氤杀具^高)

Step 2 應(yīng)用代碼接入

申請完配置后,我們就可以看到客戶端接入的代碼了。阿里云會根據(jù)申請的配置動態(tài)生成客戶端接入代碼。我們按照提示,復(fù)制粘貼代碼到自己的項目里就可以完成接入了。

應(yīng)用代碼

優(yōu)缺點分析

缺點

  1. 客戶端接入成本高。以安卓/IOS端為例,每一次發(fā)布移動端應(yīng)用,需要將應(yīng)用上傳到阿里云上,獲取對應(yīng)的安全SDK。


    安卓接入
  2. 配置過多,不便于管理。對于不同類型的應(yīng)用、驗證方式需要單獨申請配置,且需要單獨接入。若客戶端更改驗證方式后,需要單獨申請配置和重新接入。

  3. 文檔不準(zhǔn)確。文檔中,除了部分參數(shù)不正確外,最嚴重的錯誤是服務(wù)端API地址是錯誤的。

優(yōu)點

  1. 客服響應(yīng)及時。提交工單可以快速相應(yīng),聯(lián)系專員可以迅速解決問題。

  2. 文檔略好于騰訊云。

  3. 資費便宜。

總結(jié)

與極驗等其他家驗證碼服務(wù)廠商相比,阿里云盾并不能算上一個合格的商用驗證碼服務(wù)。阿里云盾的客戶端接入方式較為復(fù)雜且客戶端接入成本過高。文檔有些許錯誤且不全。因此,不推薦大家在生產(chǎn)環(huán)境中使用。

相關(guān)系列文章

參考文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容