1.先到极验验证网站注册一个账号,登录上去
2.创建应用
3.出现如下的id和key
4.可以根据安装指引自行学习,也可以按我步骤来
极验验证码
在form表单添加代码
提交按钮id必须为:id=”embed-submit”
后面使用ajax时使用
css代码块:
/* 极验验证的样式 */
#embed-captcha {
width: 300px;
margin: 0 auto;
}
.show {
display: block;
}
.hide {
display: none;
}
#notice {
color: red;
}
{# 极验验证 #}
<div id="embed-captcha"></div>
<p id="wait" class="show">正在加载验证码......</p>
<p id="notice" class="hide">请先拖动验证码到相应位置</p>
<input type="submit" name="" value="登录" class="input_submit" id="embed-submit">
js代码块
<script>
var handlerEmbed = function (captchaObj) {
$("#embed-submit").click(function (e) {
var validate = captchaObj.getValidate();
if (!validate) {
$("#notice")[0].className = "show";
setTimeout(function () {
$("#notice")[0].className = "hide";
}, 1000);
e.preventDefault();
}
});
// 将验证码加到id为captcha的元素里,同时会有三个input的值:geetest_challenge, geetest_validate, geetest_seccode
captchaObj.appendTo("#embed-captcha");
captchaObj.onReady(function () {
$("#wait")[0].className = "hide";
});
// 更多接口参考:http://www.geetest.com/install/sections/idx-client-sdk.html
};
$.ajax({
// 获取id,challenge,success(是否启用failback)
url: "/user/pc-geetest/register?t=" + (new Date()).getTime(), // 加随机数防止缓存
type: "get",
dataType: "json",
success: function (data) {
// 使用initGeetest接口
// 参数1:配置参数
// 参数2:回调,回调的第一个参数验证码对象,之后可以使用它做appendTo之类的事件
initGeetest({
gt: data.gt,
challenge: data.challenge,
product: "embed", // 产品形式,包括:float,embed,popup。注意只对PC版验证码有效
offline: !data.success // 表示用户后台检测极验服务器是否宕机,一般不需要关注
// 更多配置参数请参见:http://www.geetest.com/install/sections/idx-client-sdk.html#config
}, handlerEmbed);
}
});
</script>
url配置:
# 极验验证
url(r'^pc-geetest/register', views.pcgetcaptcha, name='pcgetcaptcha'),
视图views.py:
# 极验验证,请在官网申请ID使用,示例ID不可使用
pc_geetest_id = "910*****************************01" # id
pc_geetest_key = "73d****************************03" # key
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)
成功后会出现极验验证码,显示正在加载时需要等待一下,请求别人的网络还没生成验证码,这个验证码已经自带校验是否输入验证码,验证码是否正确: