前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网站对接极验验证之实现ajax

网站对接极验验证之实现ajax

作者头像
浩瀚博客
发布2022-03-23 15:14:03
9400
发布2022-03-23 15:14:03
举报
文章被收录于专栏:浩瀚博客

前言

极验验证官网

SDK地址

官方文档

本次demo地址

实现步骤

1. 引入类库

首先前台需要引入jquery与极验库js

代码语言:javascript
复制
<script src="//cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>
<script src="//static.geetest.com/static/tools/gt.js"></script>

2. 标签head内加入css

代码语言:javascript
复制
<style>
    body {
        margin: 50px 0;
        text-align: center;
        font-family: "PingFangSC-Regular", "Open Sans", Arial, "Hiragino Sans GB", "Microsoft YaHei", "STHeiti", "WenQuanYi Micro Hei", SimSun, sans-serif;
    }

    .inp {
        border: 1px solid #cccccc;
        border-radius: 2px;
        padding: 0 10px;
        width: 278px;
        height: 40px;
        font-size: 18px;
    }

    .btn {
        display: inline-block;
        box-sizing: border-box;
        border: 1px solid #cccccc;
        border-radius: 2px;
        width: 100px;
        height: 40px;
        line-height: 40px;
        font-size: 16px;
        color: #666;
        cursor: pointer;
        background: white linear-gradient(180deg, #ffffff 0%, #f3f3f3 100%);
    }

    .btn:hover {
        background: white linear-gradient(0deg, #ffffff 0%, #f3f3f3 100%)
    }

    #captcha {
        width: 300px;
        display: inline-block;
    }

    label {
        vertical-align: top;
        display: inline-block;
        width: 80px;
        text-align: right;
    }

    #wait {
        text-align: left;
        color: #666;
        margin: 0;
    }
</style>

3. 按钮定义 id="btn"

代码语言:javascript
复制
<input type="button" id="btn" class="nya-btn" style="width:45%" value="按钮">

4. body尾部加入demo js

代码语言:javascript
复制
<script>
    var handler = function (captchaObj) {
        captchaObj.onReady(function () {
            $("#wait").hide();
        }).onSuccess(function () {
            var result = captchaObj.getValidate();
            if (!result) {
                return alert('请完成验证');
            }
            $.ajax({
                url: 'gt/validate-slide',//二次验证接口,见SDK中/web/VerifyLoginServlet.php,在验证成功处加入自己要执行的代码
                type: 'POST',
                dataType: 'json',//返回的格式
                data: {
                    username: $('#username2').val(),
                    password: $('#password2').val(),
                    geetest_challenge: result.geetest_challenge,//极验验证参数,不能少
                    geetest_validate: result.geetest_validate,//极验验证参数,不能少
                    geetest_seccode: result.geetest_seccode//极验验证参数,不能少
                },
                success: function (data) {//ajax回调
                    if (data.status === 'success') {
                        setTimeout(function () {
                            alert('登录成功');//提示
                        }, 1500);
                    } else if (data.status === 'fail') {
                        setTimeout(function () {
                            alert('登录失败,请完成验证');//提示
                            captchaObj.reset();
                        }, 1500);
                    }
                }
            });
        });
        $('#btn').click(function () {
            // 调用之前先通过前端表单校验
            captchaObj.verify();
        });
    };
    $.ajax({
        url: "gt/register-slide?t=" + (new Date()).getTime(), // 一次验证接口,见SDK中/web/StartCaptchaServlet.php,加随机数防止缓存
        type: "get",
        dataType: "json",
        success: function (data) {
            // 调用 initGeetest 进行初始化
            // 参数1:配置参数
            // 参数2:回调,回调的第一个参数验证码对象,之后可以使用它调用相应的接口
            initGeetest({
                // 以下 4 个配置参数为必须,不能缺少
                gt: data.gt,
                challenge: data.challenge,
                offline: !data.success, // 表示用户后台检测极验服务器是否宕机
                new_captcha: data.new_captcha, // 用于宕机时表示是新验证码的宕机
                product: "bind", // 产品形式,包括:float,popup
                width: "300px",
                https: true
            }, handler);
        }
    });
</script>

说明

以上就是我看极验验证官网SDK与demo地址的理解,如果看不懂可以先看看这一篇文章

网站对接极验验证过程详解

前言极验验证官网项目地址官方文档如何使用1.引入类库首先前台需要引入jquery与极验库js<script ...

理解后粗略实现了一下功能,地址:http://qq.qqbig.cn/

可以看看这个网址的代码,js没有加密的。

正文到此结束

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020 年 07 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实现步骤
  • 说明
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档