首頁 > 軟體

Python+KgCaptcha實現驗證碼的開發詳解

2023-09-06 06:03:54

背景

閒來無聊,在網上發現了一個驗證碼產品KgCaptcha,下面是我用KgCaptcha開發驗證碼的記錄。

開發過程

Web接入

存取官網,註冊賬號後登入控制檯,建立應用,系統會分配一個唯一的AppId、AppSecret。

引入JS

這裡的appid在使用者控制檯獲取。

<script src="captcha.js?appid=xxx"></script>

JS接入程式碼

kg.captcha({
    // 繫結元素,驗證框顯示區域
    bind: "#captchaBox",

    // 驗證成功事務處理
    success: function(e) {
        console.log(e); 
    },

    // 驗證失敗事務處理
    failure: function(e) {
        console.log(e); 
    },

    // 點選重新整理按鈕時觸發
    refresh: function(e) {
        console.log(e);
    }
});

Python後臺驗證

from wsgiref.simple_server import make_server
from KgCaptchaSDK import KgCaptcha
def start(environ, response):
    # 填寫你的 AppId,在應用管理中獲取
    AppID = "xxx"
    # 填寫你的 AppSecret,在應用管理中獲取
    AppSecret = "xxx"
    request = KgCaptcha(AppID, AppSecret)
    # 填寫應用服務域名,在應用管理中獲取
    request.appCdn = "https://cdn.kgcaptcha.com"
    # 請求超時時間,秒
    request.connectTimeout = 10
    # 使用者id/登入名/手機號等資訊,當安全策略中的防控等級為3時必須填寫
    request.userId = "kgCaptchaDemo"
    # 使用其它 WEB 框架時請刪除 request.parse,使用框架提供的方法獲取以下相關引數
    parseEnviron = request.parse(environ)
    # 前端驗證成功後頒發的 token,有效期為兩分鐘
    request.token = parseEnviron["post"].get("kgCaptchaToken", "")  # 前端 _POST["kgCaptchaToken"]
    # 使用者端IP地址
    request.clientIp = parseEnviron["ip"]
    # 使用者端瀏覽器資訊
    request.clientBrowser = parseEnviron["browser"]
    # 來路域名
    request.domain = parseEnviron["domain"]
    # 傳送請求
    requestResult = request.sendRequest()
    if requestResult.code == 0:
        # 驗證通過邏輯處理
        html = "驗證通過"
    else:
        # 驗證失敗邏輯處理
        html = f"{requestResult.msg} - {requestResult.code}"
    response("200 OK", [("Content-type", "text/html; charset=utf-8")])
    return [bytes(str(html), encoding="utf-8")]
httpd = make_server("0.0.0.0", 8088, start)  # 設定偵錯埠  http://localhost:8088/
httpd.serve_forever()

JS重新整理驗證碼

<script>kg.reload(kg.param);</script>

效果展示

最後

SDK開源地址:KgCaptcha (KgCaptcha) · GitHub,順便做了一個演示:凱格行為驗證碼線上體驗

到此這篇關於Python+KgCaptcha實現驗證碼的開發詳解的文章就介紹到這了,更多相關Python KgCaptcha驗證碼內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com