极验Geetest
ThinkPHP5.1可用的极验扩展
样例
安装
composer require huelse/geetest
使用
参数配置
在配置文件config里配置geetest配置,需要到官网申请
//key配置
//路径 config/config.php
'geetest'=> [
'captcha_id' =>'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'private_key'=>'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
],
模板里的调用
CSS样式参照demo.html的style样式48-144行
行为验证™ 安全组件加载中
$(document).ready(function () {
var handler = function (captchaObj) {
captchaObj.appendTo('#captcha');
captchaObj.onReady(function () {
$("#wait").hide();
});
$("#submit").click(function () {
var result = captchaObj.getValidate();
if (!result) {
alert('请完成验证');
} else {
$.ajax({
type: 'POST',
url: '/', // 自定义接收url
dataType: 'json',
data: {
userId: $('#inputUserid').val(),
userPwd: $('#inputPassword').val(),
geetest_challenge: result.geetest_challenge,
geetest_validate: result.geetest_validate,
geetest_seccode: result.geetest_seccode
},
success: function (data) {
if (data) {
alert('登陆成功');
// 成功后的自定义操作
}
},
error: function (data) {
alert('登陆失败');
// console.log(JSON.stringify(data));
// 失败后的自定义操作
},
});
}
});
window.gt = captchaObj;
};
$.ajax({
url: "geetest.html?t=" + (new Date()).getTime(), // 加随机数防止缓存
type: "get",
dataType: "json",
success: function (data) {
// console.log(data);
$('#text').hide();
$('#wait').show();
initGeetest({
gt: data.gt,
challenge: data.challenge,
new_captcha: data.new_captcha,
product: "float", // 产品形式,包括:float,embed,popup 等。注意只对PC版验证码有效
offline: !data.success, // 表示用户后台检测极验服务器是否宕机,一般不需要关注
}, handler);
}
});
});
控制器里验证
$data = Request::param(); //传入请求数据
if(!geetest_check($data)){
//验证失败
return json()->data(false)->code(403);
}
更多