官网:
准备工作:
1、去官网下载相关代码
2、安装geetest模块
第一步:将以下代码拷贝到页面的js文件中
注意修改几个地方:
1、第10行,将url改成自己的登陆url。
2、第14-16行,提取自己页面上的数据。
3、第30行,绑定自己的登陆按钮。
4、第34行,在页面中创建一个有这个class的div标签。
1 2 3 4
第二步:设置获取验证码的url和视图函数
1、url绑定视图函数
#获取验证码信息 path('pc-geetest/register', account.pcgetcaptcha),
2、视图函数
pc_geetest_id = "b46d1900d0a894591916ea94ea91bd2c"pc_geetest_key = "36fc3fe98530eea08dfc6ce76e3d24c4"def pcgetcaptcha(request): user_id = 'test' gt = GeetestLib(pc_geetest_id, pc_geetest_key) status = gt.pre_process(user_id) request.session[gt.GT_STATUS_SESSION_KEY] = status request.session["user_id"] = user_id response_str = gt.get_response_str() return HttpResponse(response_str)
第三步:设置验证码和账号密码校验的函数
def login(request): if request.method == "GET": return render(request, "login.html") # POST请求获取用户名和密码 username = request.POST.get("username") password = request.POST.get("password") ret = { "status": False, "msg": None} # 验证码相关操作 gt = GeetestLib(pc_geetest_id, pc_geetest_key) challenge = request.POST.get(gt.FN_CHALLENGE, '') validate = request.POST.get(gt.FN_VALIDATE, '') seccode = request.POST.get(gt.FN_SECCODE, '') status = request.session[gt.GT_STATUS_SESSION_KEY] user_id = request.session["user_id"] if not status: # 验证码校验失败 result = gt.failback_validate(challenge, validate, seccode) ret["msg"] = "验证码错误" else: # 验证码校验成功 result = gt.success_validate(challenge, validate, seccode, user_id) user = auth.authenticate(username=username, password=password) if user: auth.login(request, user) ret["status"] = True ret["msg"] = "/index" else: ret["msg"] = "用户名或密码错误" return JsonResponse(ret)