网站月服务器对接,网站对接极验验证过程详解

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

世界和平 • 2019 年 12 月 26 日

Loading...

## 前言

[极验验证官网][1]

[项目地址][2]

[官方文档][3]

## 如何使用

**1.引入类库**

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

```html

```

**2.配置前端**

首先查看下载的SDK文件:

/static/login.html

代码加入相应位置:

```html

正在加载验证码......

请先完成验证

```

代码加入head内:

```css

body {

margin: 0px 0;

}

.inp {

border: 1px solid gray;

padding: 0 10px;

width: 200px;

height: 30px;

font-size: 18px;

}

.btn {

border: 1px solid gray;

width: 300px;

height: 30px;

font-size: 18px;

cursor: pointer;

}

#embed-captcha {

width: 300px;

margin: 0 auto;

}

.show {

display: block;

}

.hide {

display: none;

}

#notice {

color: red;

}

```

**3.服务器端部署(PHP)**

我们在SDK找到路径:

`/web/StartCaptchaServlet.php`

文件内容:

```php

/**

* 使用Get的方式返回:challenge和capthca_id 此方式以实现前后端完全分离的开发模式 专门实现failback

* @author Tanxu

*/

//error_reporting(0);

require_once dirname(dirname(__FILE__)) . '/lib/class.geetestlib.php';// 引入文件

require_once dirname(dirname(__FILE__)) . '/config/config.php';// 引入文件

$GtSdk = new GeetestLib(CAPTCHA_ID, PRIVATE_KEY);// 实例化,实例化的参数在config中配置,分别是:验证ID 和 验证Key

session_start();

$data = array(

"user_id" => "test", # 网站用户id

"client_type" => "web", #web:电脑上的浏览器;h5:手机上的浏览器,包括移动应用内完全内置的web_view;native:通过原生SDK植入APP应用的方式

"ip_address" => "127.0.0.1" # 请在此处传输用户请求验证时所携带的IP

);

// 生成验证码信息,并返回给客户端

$status = $GtSdk->pre_process($data, 1);

$_SESSION['gtserver'] = $status;

$_SESSION['user_id'] = $data['user_id'];

echo $GtSdk->get_response_str();

?>

```

SDK找到路径

`/web/VerifyLoginServlet.php`

文件内容:

```

/**

* 输出二次验证结果,本文件示例只是简单的输出 Yes or No

*/

error_reporting(0);

require_once dirname(dirname(__FILE__)) . '/lib/class.geetestlib.php';

require_once dirname(dirname(__FILE__)) . '/config/config.php';

session_start();

$GtSdk = new GeetestLib(CAPTCHA_ID, PRIVATE_KEY);

$data = array(

"user_id" => $_SESSION['user_id'], # 网站用户id

"client_type" => "web", #web:电脑上的浏览器;h5:手机上的浏览器,包括移动应用内完全内置的web_view;native:通过原生SDK植入APP应用的方式

"ip_address" => "127.0.0.1" # 请在此处传输用户请求验证时所携带的IP

);

if ($_SESSION['gtserver'] == 1) { //服务器正常

$result = $GtSdk->success_validate($_POST['geetest_challenge'], $_POST['geetest_validate'], $_POST['geetest_seccode'], $data);

if ($result) {

echo '{"status":"success"}'; // 验证码验证成功

} else{

echo '{"status":"fail"}';// 验证码验证失败

}

}else{ //服务器宕机,走failback模式

if ($GtSdk->fail_validate($_POST['geetest_challenge'],$_POST['geetest_validate'],$_POST['geetest_seccode'])) {

echo '{"status":"success"}';

}else{

echo '{"status":"fail"}';

}

}

?>

```

在API2中当取出status=0时表示极验宕机,此时流程进入failback模式,后续逻辑都是在您的服务器完成,不会再向极验服务器发送网络请求。大同小异!

**4.填入公钥(id)和私钥(key)**

找到SDK路径:

`/config/config.php`

![公钥(id)和私钥(key)](https://image.blogbig.cn/2019/12/26/1577345286.jpg)

下次讲解极验验证ajax的实现吧!继续折腾中...

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

前言极验验证官网SDK地址官方文档本次demo地址实现步骤1. 引入类库首先前台需要引入jquery与极验库js&...

[1]: https://www.blogbig.cn/go/thILmD74/

[2]: https://www.blogbig.cn/go/RIttSZfU/

[3]: https://www.blogbig.cn/go/ZYdmZkME/

[4]: https://image.blogbig.cn/2019/12/26/1577345286.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值