平台对接

V5验证前后端对接流程如下图所示:

前后端调用时序图

对接V5验证分为业务网站后台api对接以及业务前端代码引入两部分。

业务网站后台

获取验证Token及验证服务器(getToken)

用于网站后台定时通过V5控制台刷新获取验证所需要的Token及验证服务器地址。Token有效期为24小时。

请求方式:GET

调用示例:

curl -X GET 'https://{host}/openapi/getToken?appid=dff58e0476e34b5899d4027733f8c14b&timestamp=1564220208945&signature=6c8e8e38d11dddb08d5b5a8fc750db68'

Request入参说明:

参数名

说明

示例

appid

当前网站应用对应的App Id

dff58e0476e34b5899d4027733f8c14b

timestamp

当前提交时的Unix时间戳,即北京时间1970-1-1 0:0:0到现在经过的毫秒数

1564220208945

signature

当前提交时的签名。详细见签名规则

6c8e8e38d11dddb08d5b5a8fc750db68'

Response返回格式:

{

"success": true,//请求是否成功标识

"data": {              //请求返回的消息体,详细以下列表说明

"expiresIn": "86400000",

"token": "e3e3d5d1aa4445e9bdde0bdb7eac37d6"

}

}

返回参数说明:

参数名

说明

示例

token

返回当前有效的token

e3e3d5d1aa4445e9bdde0bdb7eac37d6

expiresIn

token有效时长单位毫秒

86400000'

获取验证结果(verify)

在前端完成验证后,业务网站后台向V5验证服务器调用接口获取验证结果。验证结果最长保留5分钟,在业务网站后台成功获取结果后立即删除。

请求方式:GET

调用示例:

curl -X GET 'https://{host}/openapi/verify?&verifyid=ee92ede662aa43c3a68c2a369fa19c70&token=644112d89ac54bac97cee06d42e2137c&timestamp=1564220208945&signature=6c8e8e38d11dddb08d5b5a8fc750db68'

Request入参说明:

参数名

说明

示例

host

验证节点域名

xxxx.verify5.com

verifyid

前端验证时返回的票据,由前端验证后返回

ee92ede662aa43c3a68c2a369fa19c70

token

当前有效的token

644112d89ac54bac97cee06d42e2137c

timestamp

当前提交时的Unix时间戳,即北京时间1970-1-1 0:0:0到现在经过的毫秒数

1564220208945

signature

当前提交时的签名。详细见签名规则

注:host不参与签名

6c8e8e38d11dddb08d5b5a8fc750db68

Response返回格式:

{

"success": true,//请求是否成功或失败标识,true/false

}

前端对接

Web前端

1. 引入JS

在需要进行V5验证的页面,引入v5.js:

2. 样式表

默认情况下,v5.js会检测当前页面环境并自动植入v5.css,开发者也可手动在页面植入css代码样式表:

3. JS API校验

var v5=new com.strato.Verify5({//每次验证都要创建新的Verify5实例

host:"Host",//从后台getToken接口获得

token:"(Token)"//从后台getToken接口获得

});

v5.on("CANCEL",function(){

//当用户取消验证时触发

});

v5.verify(function(result){

var success=result.success;

if(success){

var verifyId=result.verifyId;

//TODO 将verifyId提交到应用服务器请求二次验证

}

});

4. npm引入方式

npm install verify5-html --save

import Verify5 from 'verify5-html'

let v5=new Verify5({//每次验证都要创建新的Verify5实例

host:"Host",//从后台getToken接口获得

token:"(Token)"//从后台getToken接口获得

};

v5.on("CANCEL",function(){

//当用户取消验证时触发

});

v5.verify(function(result){

var success=result.success;

if(success){

var verifyId=result.verifyId;

//TODO 将verifyId提交到应用服务器请求二次验证

}

});

5. Data API校验

V5支持通过自定义属性v5-config自动初始化UI控件。语法为:

v5.js会在页面加载完成后自动生成验证按钮组件,如下图效果:

当用户点击按钮并验证通过时,会自动在div内生成hidden input:

其中,{name}为v5-config中传入的name(示例中为 "v5" ),{verifyId}为控件自动生成的唯一通过码,该字段需同业务表单一起提交至后台,并提交到验证服务器进行二次验证。

签名规则

签名生成方法如下:

对所有请求参数(包括公有参数和私有参数,但不包括 signature 参数),按照参数名ASCII码表升序顺序排序。如:foo=1f, bar=2B, foo_bar=3FB, baz=4baz 排序后的顺序是 bar=2B, baz=4baz, foo=1f, foobar=3FB。

将排序好的参数名和参数值构造成字符串,格式为:key1value1key2value2… 。根据上面的示例得到的构造结果为:bar2Bbaz4bazfoo1ffoobar3FB 。

选择与 appid 配对的 appkey ,加到上一步构造好的参数字符串之后,如 app=6308afb129ea00301bd7c79621d07591 ,则最后的参数字符串为:bar2Bbaz4bazfoo1ffoobar3FB6308afb129ea00301bd7c79621d07591。

把第3步拼装好的字符串采用 utf-8 编码,使用 MD5 算法对字符串进行摘要,计算得到 signature 参数值,将其加入到接口请求参数中即可。MD5 是128位长度的摘要算法,用16进制表示,一个十六进制的字符能表示4个位,所以签名后的字符串长度固定为32位十六进制字符(小写)。

签名生成示例代码(java):

/**

* 生成签名信息

* @paramappKey产品私钥

* @param params 接口请求参数名和参数值map,不包括signature参数名

* @return

*/

public static String genSignature(String appKey, Mapparams){

// 1. 参数名按照ASCII码表升序排序

String[] keys = params.keySet().toArray(new String[0]);

Arrays.sort(keys);

// 2. 按照排序拼接参数名与参数值

StringBuilder sb = newStringBuilder();

for (String key : keys) {

sb.append(key).append(params.get(key));

}

// 3. 将secretKey拼接到最后

sb.append(appKey);

// 4. MD5是128位长度的摘要算法,转换为十六进制之后长度为32字符

return DigestUtils.md5Hex(sb.toString().getBytes("UTF-8"));

}

API接口一览

/openapi/getToken

该接口用于网站后台定时通过V5控制台刷新获取验证所需要的Token及验证服务器地址。Token有效期为24小时。

请求方式:GET

调用示例:

curl -X GET 'https://{host}/openapi/getToken?appid=dff58e0476e34b5899d4027733f8c14b&timestamp=1564220208945&signature=6c8e8e38d11dddb08d5b5a8fc750db68'

Request入参说明:

参数名

说明

示例

appid

当前网站应用对应的App Id

dff58e0476e34b5899d4027733f8c14b

timestamp

当前提交时的Unix时间戳,即北京时间1970-1-1 0:0:0到现在经过的毫秒数

1564220208945

signature

当前提交时的签名。详细见签名规则

6c8e8e38d11dddb08d5b5a8fc750db68

Response返回格式:

{

"success": true,//请求是否成功标识

"data": {        //请求返回的消息体,详细以下列表说明

"expiresIn": "86400000",

"token": "e3e3d5d1aa4445e9bdde0bdb7eac37d6"

}

}

返回参数说明:

参数名

说明

示例

token

返回当前有效的token

e3e3d5d1aa4445e9bdde0bdb7eac37d6

expiresIn

token有效时长单位毫秒

86400000

/openapi/verify

获取验证结果。在前端完成验证后,业务网站后台向V5验证服务器调用接口获取验证结果。验证结果最长保留5分钟,在业务网站后台成功获取结果后立即删除。

请求方式:GET

调用示例:

curl -X GET 'https://{host}/openapi/verify?&verifyid=ee92ede662aa43c3a68c2a369fa19c70&token=644112d89ac54bac97cee06d42e2137c&timestamp=1564220208945&signature=6c8e8e38d11dddb08d5b5a8fc750db68'

Request入参说明:

参数名

说明

示例

host

验证节点域名

xxxx.verify5.com

verifyid

前端验证时返回的票据,由前端验证后返回

ee92ede662aa43c3a68c2a369fa19c70

token

当前有效的token

644112d89ac54bac97cee06d42e2137c

timestamp

当前提交时的Unix时间戳,即北京时间1970-1-1 0:0:0到现在经过的毫秒数

1564220208945

signature

当前提交时的签名。详细见签名规则

注:host不参与签名

6c8e8e38d11dddb08d5b5a8fc750db68'

Response返回格式:

{

"success": true,//请求是否成功或失败标识,true/false

}

JS方法一览

class com.strato.Verify5(Object config)

v5构造函数,config参数包括:

ssl:boolean值,可以是true或者false,可不传,生产环境下默认为true。

host:即应用中的域名host

token:应用令牌,由服务端调用API(/openapi/getToken)获得

void on(String eventName,Function callback)事件监听。

eventName包括:

CANCEL:用户取消校验

DESTROY:控件控件销毁(当校验成功、取消、失败时均会触发,可用作校验结束标记)。

void verify(Function callback)

唤起校验窗口,当成功后触发callback。

callback接收result参数,包含两个属性:

success:校验是否通过

verifyId:校验通过后返回的唯一通过码

static com.strato.verify5.v5Field $(String id)

根据 id获取data api的对象实例,例如:

var field=com.strato.Verify5.$(" v5container" );

class com.strato.Verify5.v5Field()

data api的控件构造函数,一般无需手动实例化,可通过com.strato.Verify5.$方法获得对应的实例。

String getValue()

得到控件的校验结果(verifyId)

com.strato.Verify5 getVerify5()

得到对应的v5实例。

Android

待补充

Ios

待补充

小程序

待补充

c 服务器二次验证码,V5验证官网 - 基础套餐免费 -滑块验证,行为验证,防刷验证 - 文档...相关推荐

  1. python docx官网_【记录】尝试用DocxyGen为Python代码生成文档

    [背景] 之前折腾技术的时候,或多或少,知道一个东西: DocxyGen 是用于从代码生成文档的. 最近,又从: -> 该地址无效,但是自己手动输入地址,而找到: 看到页面右下角,就显示了,此在 ...

  2. bootstrapvalidat cdn_bootstrapValidator插件下载、官网地址、免费CDN加速地址等

    bootstrapValidator插件下载.官网地址.免费CDN加速地址等 : 04-07 22:10 : 146次 : 0条 1赞 点赞 简介这篇文章为你提供bootstrapValidator插 ...

  3. 网上特工网络监控系统 v5.65 官网

    Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...

  4. 盗墓笔记页游服务器怎么找回,盗墓笔记页游官网

    盗墓笔记页游官网官方介绍: 盗墓笔记开启中国游戏界的"盗墓时代",由南派三叔正版授权,闷油瓶带你穿梭阴阳,纵横古今,打造首款盗墓题材卡牌游戏大作.游戏由南派三叔亲自做剧情监制,忠实 ...

  5. dnf手游体验服服务器维护,dnf手游体验服官网

    dnf手游体验服官网下载地址游戏亮点: 1.达到特定水平后,您可以打开经典转移以解锁新角色技能.合理释放各种角色的强大技能,以应对更艰巨的挑战. 2.对经典角色技能进行了全新的处理,以供玩家探索.恢复 ...

  6. SSM开发书评网29:后台二:wangEditor图片上传;(主要内容是【wangEditor图片上传的文档要求】,【Spring MVC整合FileUpload组件,以实现文件上传功能】)

    说明: (1)本篇博客内容说明:[在后台系统,我们点击新增按钮后,会弹出新增图书对话框]→[该对话框中,包含一个wangEditor富文本编辑器]→[wangEditor富文本编辑器中,可以包含图片] ...

  7. 天地人“三界传说”官网基础效果(适合各分辨率页面)

    说明: 因图片(动图)上传有大小要求,录制的视频也不能直接传上来. 所以就把代码放上来,各位自己测试一下吧.能写的注释,我都写上了. js这块暂时是用jq做的,因为jq就是"写少,做多&qu ...

  8. 重磅:Vue 官网竟然有免费的中文视频教程了

    loonggg 读完需要 2 分钟 速读仅需1分钟 关注我很久的读者应该都知道,这两年我一直在创业,当然了,作为程序员创业来讲,其实有时候真的不得不自己去干很多活.虽然我是移动端开发出身,但是这两年其 ...

  9. 蓝牙协议spec文档免费下载官网下载(免费)

    网上找文档,到处需要收费,收积分. 自己动手丰衣足食 以蓝牙core_v5.2协议文档为例,官网下载. 1.进入官网 https://www.bluetooth.com/ 2.标题栏找到 " ...

最新文章

  1. 开源 java CMS - FreeCMS2.3员
  2. 按钮美化,变化显示效果
  3. java -jar 停止_推荐:Linux启动Java程序jar包Shell脚本
  4. 变量声明和函数声明的意义详解
  5. 【POJ - 2301 】Beat the Spread! (简单数学)
  6. python中的下划线用法
  7. orderquery.php,multiOrderQuery.php
  8. 两万字深入解密 Go 语言接口的那些事儿 | 技术头条
  9. React Native运行原理解析
  10. mysql可重复度能解决幻读吗
  11. 如何修改Tomcat默认端口号
  12. z变换判断稳定性和因果性_试题库 - 7:z变换 -
  13. 路由器与交换机的基本工作原理
  14. 股票实时行情数据有哪些分类?
  15. 2020届实习招商银行信用卡笔试题(IT算法方向)python版(同2019春招笔试题)
  16. GIS案例学习笔记-多边形内部缓冲区地理模型
  17. 【498. 对角线遍历】
  18. 利用 Python + Selenium 自动化快速截图
  19. 西瓜书------前两章
  20. 【行空板教程】写字板

热门文章

  1. ell服务器专用pe系统,GitHub - elltor/smpe-admin: 后端通用开发框架
  2. 引入的html设置utf-8,如何为default.html将字符编码设置为UTF-8?
  3. linux删除mysql临时文件_linux下mysql自动备份数据库与自动删除临时文件_MySQL
  4. matlab基本矩阵运算,matlab的矩阵基本运算问题已知A=[a,b,c;d,e,f;h,I,j],B=[l,m,n;x,y,z;q,o,p]...
  5. python启蒙视频_python启蒙阶段
  6. ElasticSearch 中的中文分词器该怎么玩?_03
  7. Flowable 数据库表结构 ACT_ID_USER
  8. Flowable 数据库表结构 ACT_RU_EVENT_SUBSCR
  9. Error: GlobalConfigUtils setMetaData Fail
  10. jenkins 远程启动tomcat报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined