极验geetest的使用

前端:








后端:
首先从https://github.com/GeeTeam/gt-python-sdk/
下载geetest文件夹的geetest.py和init.py这2个文件放入自己的项目,
我使用的是极验3.2版本,python是3.4版本
从极验geetest下载的3.2版本的包,加入项目后,居然导致session出现各种莫名错误,明明在session设置了某个key的值,读取这个key的值就说不存在。莫名其妙,搞了一下午,最后尝试把开头的#!coding:utf8去掉,一下全部正常了,因为python默认就是utf-8的编码格式,不需要再画蛇添足了。

极验geetest的使用_第1张图片
Paste_Image.png

然后是后端调用代码

from ..common.geetest import GeetestLib
import json

#生成图片验证码
@auth.route('/mobile-geetest/register', methods=["GET"])
def get_mobile_captcha():
    mobile_geetest_id = "7c25da6fe21944cfe507d2f9876775a9"
    mobile_geetest_key = "f5883f4ee3bd4fa8caec67941de1b903"
    gt = GeetestLib(mobile_geetest_id, mobile_geetest_key)
    status = gt.pre_process()

    session[gt.GT_STATUS_SESSION_KEY] = status
    response_str = gt.get_response_str()
    return response_str


#验证用户拖动结果
@auth.route('/mobile-geetest/ajax_validate', methods=["GET","POST"])
def mobile_ajax_validate():

    mobile_geetest_id = "7c25da6fe21944cfe507d2f9876775a9"
    mobile_geetest_key = "f5883f4ee3bd4fa8caec67941de1b903"
    gt = GeetestLib(mobile_geetest_id,mobile_geetest_key)
    challenge = request.form[gt.FN_CHALLENGE]
    validate = request.form[gt.FN_VALIDATE]
    seccode = request.form[gt.FN_SECCODE]
    status = session[gt.GT_STATUS_SESSION_KEY]

    if status:
        result = gt.success_validate(challenge, validate, seccode)
    else:
        result = gt.failback_validate(challenge, validate, seccode)
    result = {"status":"success"} if result else {"status":"fail"}

    return json.dumps(result)
    

你可能感兴趣的:(极验geetest的使用)