Flask - geetest(极验) 学习使用

目录

一、相关文档

二、后端逻辑梳理

三、校验思路梳理 

四、初始化相关函数

4-1 验证初始化预处理

4-2 验证初始化的结果返回

五、二次校验相关函数

5-1 前端校验成功调用函数

5-2 前端校验失败调用函数

六、DEMO 相关演示

七、DEMO 运行注意点


一、相关文档

官方文档

官方 github demo

二、后端逻辑梳理

# 初始化验证码相关参数
# 请在官网申请ID使用,示例ID不可使用
pc_geetest_id = "48a6ebac4ebc6642d68c217fca33eb4d"
pc_geetest_key = "4f1c085290bec5afdc54df73535fc361"
mobile_geetest_id = "48a6ebac4ebc6642d68c217fca33eb4d"
mobile_geetest_key = "4f1c085290bec5afdc54df73535fc361"

# 第一次后端校验,用于验证码的生成
@app.route('/pc-geetest/register', methods=["GET"])
def get_pc_captcha():
    # 用户标识,若担心用户信息风险,可作预处理(如哈希处理)再提供
    user_id = 'test'
    gt = GeetestLib(pc_geetest_id, pc_geetest_key)
    # 初始化结果标识status(status=1表示初始化成功,status=0表示宕机状态)需要用户保存,在后续二次验证时会取出并进行逻辑判断。
    status = gt.pre_process(user_id)
    session[gt.GT_STATUS_SESSION_KEY] = status
    session["user_id"] = user_id
    response_str = gt.get_response_str()
    # {"success": 1, "gt": "48a6ebac4ebc6642d68c217fca33eb4d", "challenge": "f320ead2467b8132dbb5a91042748dbb"}
    return response_str

# 第二次校验,接受前端三个参数
# 当取出status=0时表示极验宕机,此时流程进入failback模式,后续逻辑都是在您的服务器完成,不会再向极验服务器发送网络请求。
# 本SDK demo中,对于failback模式,只对请求参数做了简单的校验,您也可以自行设计。
@app.route('/pc-geetest/validate', methods=["POST"])
def pc_validate_captcha():
    print(request.form)
    gt = GeetestLib(pc_geetest_id, pc_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]
    user_id = session["user_id"]
    if status:
        result = gt.success_validate(challenge, validate, seccode, user_id)
        print(result)
  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值