JS实现PC与移动端滑动拼图验证码:三种集成方案详解

作者:阿沐

时间:2026-10-21

浏览:298

本文详细介绍如何在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端、手机端及嵌入式滑动拼图验证码的三种效果,希望对大家有所帮助。如有任何疑问,请留言,小编会及时回复。感谢大家对本站的支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章