日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

服務端集成

圖形認證服務通過理清人機請求邊界并以圖形交互抵御機器異常請求,可用于幫助企業在注冊、搶購、查詢等業務運營過程中識別并防御各種機器虛擬流量。本文將介紹如何通過在服務端調用接口使用圖形認證功能。

Demo下載

請根據您所需語言下載對應Demo,根據README.md文件指引,運行Demo并啟動項目。

接入流程

  1. 圖形認證方案管理控制臺新增認證方案,獲取密鑰參數(包括appId、appKey)。

  2. 服務端配置appId、appKey參數。

  3. 用戶在客戶端界面通過圖形驗證碼后,客戶端將生成驗證參數。

  4. 服務端業務接口獲取用戶業務請求及驗證參數,生成簽名后,上傳到二次校驗接口,確認用戶本次驗證的有效性。

示例代碼

服務端集成示例代碼如下:

def post(self):
    # 1.初始化驗證密鑰參數信息
    # 請填寫在控制臺創建認證方案后生成的appId和appKey
    captcha_id = "<YOUR_APP_ID>"  # 請填寫appId
    captcha_key = "<YOUR_APP_KEY>"  # 請填寫appKey
    api_server = "https://captcha.alicaptcha.com"

    # 2.獲取用戶驗證后,前端傳過來的驗證參數
    lot_number = self.get_argument("lot_number", "")
    captcha_output = self.get_argument("captcha_output", "")
    pass_token = self.get_argument("pass_token", "")
    gen_time = self.get_argument("gen_time", "")

    # 3.生成簽名
    # 生成簽名使?標準的hmac算法,使用用戶當前完成驗證的流水號lot_number作為原始消息message
    # 采用sha256散列算法將message和key進行單向散列生成最終的簽名
    lotnumber_bytes = lot_number.encode()
    prikey_bytes = captcha_key.encode()
    sign_token = hmac.new(prikey_bytes, lotnumber_bytes, digestmod="SHA256").hexdigest()

    # 4.上傳校驗參數到驗證服務?次驗證接口, 校驗用戶驗證狀態
    query = {
        "lot_number": lot_number,
        "captcha_output": captcha_output,
        "pass_token": pass_token,
        "gen_time": gen_time,
        "sign_token": sign_token,
    }
    # captcha_id參數建議放在url后面, 方便請求異常時可以在日志中根據id快速定位到異常請
    url = api_server + "/validate" + "?captcha_id={}".format(captcha_id)
    # 注意處理接口異常情況,當請求?次驗證接口異?;蝽憫獱顟B非200時做出相應異常處理
    # 保證不會因為接口請求超時或服務未響應而阻礙業務流程
    try:
        res = requests.post(url, query)
        assert res.status_code == 200
        msg = json.loads(res.text)
    except Exception as e:
        msg = {"result": "success", "reason": "request api fail"}

    # 5.根據?次驗證接口返回的用戶驗證狀態, 完成您自己的業務邏輯
    if msg["result"] == "success":
        self.write({"login": "success", "reason": msg["reason"]})
    else:
        self.write({"login": "fail", "reason": msg["reason"]})

二次校驗接口

接口信息

說明

接口地址

https://captcha.alicaptcha.com/validate

協議?持

HTTP/HTTPS

請求方法

GET/POST

請求格式

application/x-www-form-urlencoded

返回類型

JSON

請求參數

請求參數

類型

說明

lot_number

String

驗證流水號。

captcha_output

String

驗證輸出信息。

pass_token

String

驗證通過標識。

gen_time

String

驗證通過時間戳。

captcha_id

String

驗證ID。

sign_token

String

驗證簽名。

返回示例

校驗成功返回示例

{
    "status": "success", // 請求狀態
    "result": "success", // ?次校驗結果
    "reason": "", // 校驗結果說明
    "captcha_args": { // 驗證輸出參數
        "used_type": "icon",
        "user_ip": "127.0.0.1",
        "lot_number": "4dc3cfc2cdff448cad8d13107198d473",
        "scene": "反爬蟲",
        "referer": "http://127.0.0.1:8077/"
        // ...
    }
}

校驗失敗返回示例

{
    "status": "success", // 請求狀態
    "result": "fail", // ?次校驗結果
    "reason": "pass_token expire", // 校驗結果說明
    "captcha_args": { // 驗證輸出參數
        "used_type": "icon",
        "user_ip": "127.0.0.1",
        "lot_number": "4dc3cfc2cdff448cad8d13107198d473",
        "scene": "反爬蟲",
        "referer": "http://127.0.0.1:8077/"
        // ...
    }
}

請求結果異常返回示例

{
    "status": "error", // 請求狀態
    "code": "-50005", // 錯誤碼
    "msg": "illegal gen_time", // 錯誤信息
    "desc": { // 錯誤描述
        "type": "defined error"
    }
}