本文详细介绍如何在PC端和移动端集成滑动拼图验证码,涵盖弹出式、嵌入式及移动端手动实现三种效果。通过示例代码演示如何引入极验库、初始化前端配置以及使用AJAX或表单提交验证结果,帮助开发者快速实现安全可靠的二次验证功能。
滑动拼图验证码集成方案概述
本文提供适用于PC端和移动端网站的滑动拼图验证码源码,包含三种主要效果:弹出式Demo(通过AJAX提交验证结果)、嵌入式Demo(通过表单提交验证结果)以及移动端手动实现的弹出式Demo。

前端页面准备与类库引入
首先,需要确定前端使用的页面,例如登录页面。
<script src="http://code.jquery.com/jquery-1.12.3.min.js"></script>
<script src="http://static.geetest.com/static/tools/gt.js"></script>
1. 在登录页面引入类库:如果您的网站使用HTTPS协议,只需将引入极验库的地址更改为https即可,无需修改其他部分。例如,更换为以下代码:
<script src="https://code.jquery.com/jquery-1.12.3.min.js"></script>
<script src="https://static.geetest.com/static/tools/gt.js"></script>
前端初始化与回调处理
2. 初始化前端:以下代码需在页面加载完成后执行。如果您使用jQuery,可以将其写在$(function(){});中。
$.ajax({
// 获取id,challenge,success(是否启用failback)
url: "../web/StartCaptchaServlet.php?t=" + (new Date()).getTime(), // 加随机数防止缓存
type: "get",
dataType: "json",
success: function (data) {
// 使用initGeetest接口
// 参数1:配置参数
// 参数2:回调,回调的第一个参数验证码对象,之后可以使用它做appendTo之类的事件
initGeetest({
gt: data.gt,
challenge: data.challenge,
product: "popup", // 产品形式,包括:float,embed,popup。注意只对PC版验证码有效
offline: !data.success // 表示用户后台检测极验服务器是否宕机,与SDK配合,用户一般不需要关注
}, handlerPopup);
}
});
上述代码表示页面加载后,需从指定的URL地址获取验证码信息。该URL地址(如“../web/StartCaptchaServlet.PHP”)的内容将在服务器端代码部署部分详细说明。需要注意的是,代码中包含一个名为“handlerPopup”的回调函数,这是验证码初始化的核心代码,如下所示:
// 代码详细说明
var handlerPopup = function (captchaObj) {
// 注册提交按钮事件,比如在登陆页面的登陆按钮
$("#popup-submit").click(function () {
// 此处省略在登陆界面中,获取登陆数据的一些步骤
// 先校验是否点击了验证码
var validate = captchaObj.getValidate();
if (!validate) {
alert('请先完成验证!');
return;
}
// 提交验证码信息,比如登陆页面,你需要提交登陆信息,用户名和密码等登陆数据
$.ajax({
url: "../web/VerifyLoginServlet.php",
type: "post",
// dataType: "json",
data: {
// 用户名和密码等其他数据,自己获取,不做演示
username:username,
password:password,
// 验证码数据,这些数据不用自己获取
// 这是二次验证所需的三个值
// 当然,你也可以直接设置验证码单独校验,省略其他信息
geetest_challenge: validate.geetest_challenge,
geetest_validate: validate.geetest_validate,
geetest_seccode: validate.geetest_seccode
},
// 这里是正确返回处理结果的处理函数
// 假设你就返回了1,2,3
// 当然,正常情况是返回JSON数据
success: function (result) {
// 1表示验证码验证失败
if (result == "1") {
alert("验证码验证失败!");
}else if (result == "2") {
alert("用户名或密码错误!");
}else if (result == "3") {
alert("登陆成功!");
// 登陆成功了,可以在这里做其他处理
}else{
alert("登陆错误!");
}
}
});
});
// 弹出式需要绑定触发验证码弹出按钮
// 比如在登陆页面,这个触发按钮就是登陆按钮
captchaObj.bindOn("#popup-submit");
// 将验证码加到id为captcha的元素里
// 验证码将会在下面指定的元素中显示出来
captchaObj.appendTo("#popup-captcha");
// 更多接口参考:http://www.geetest.com/install/sections/idx-client-sdk.html
};
以上介绍了JS实现PC端、手机端及嵌入式滑动拼图验证码的三种效果,希望对大家有所帮助。如有任何疑问,请留言,小编会及时回复。感谢大家对本站的支持!