c 服務器二次驗證碼,V5驗證官網 - 基礎套餐免費 -滑塊驗證,行為驗證,防刷驗證 - 文檔...

平臺對接

V5驗證前后端對接流程如下圖所示:

7bae89987c5c148f749ca17e1c6d6ab2.png

前后端調用時序圖

對接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會在頁面加載完成后自動生成驗證按鈕組件,如下圖效果:

6d1032fd3328b710208b4eb13e648d20.png

當用戶點擊按鈕并驗證通過時,會自動在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

待補充

小程序

待補充

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/530462.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/530462.shtml
英文地址,請注明出處:http://en.pswp.cn/news/530462.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

戰隊服務器人員位置,和平精英:職業戰隊如何分配成員位置?5大定位劃出5種職位...

#百度APP&百家號杯和平精英#隨著時間的推進,距離百家號杯的決賽越來越近了;一百只精英隊伍你爭我搶都想要爭取冠軍的寶座。在最新的一場循環賽當中SC戰隊以70分的總積分占領榜首,Dae戰隊以69分的總積分緊隨其后排名第二。雖說SC拿到了循環…

sony電視播放服務器文件,sony電視怎么樣 sony電視支持視頻格式【圖文詳解】

現在, 電視機 對于每個家庭來說已然不是什么奢侈品,并且已經成為必備的家庭電器之一。其實,國產電視機中也有不少的知名品牌,但是許多消費者對國外的電子技術持有更高的認可度,因此下面小編就來跟大家講講sony電視&…

css三欄布局技巧,CSS-三欄布局的常用6種方法

三欄布局一般指左右兩欄固定寬度,中間一欄自適應的布局方法,也是許多網站常用的布局方式。如下圖:該示例在一個html文件中編寫,為方便起見,預先寫好一個通用的css,左右寬度都為100px;1.浮動三欄…

關閉服務器系統關機事件,Windows Server 2012 系統提示意外關閉,事件ID:6008

日志名稱: System來源: EventLog日期: 2020/7/20 11:10:18事件 ID: 6008任務類別: 無級別: 錯誤關鍵字: 經典用戶: 暫缺計算機: WIN-GVIJQ6J6IH5描述:上一次系統的 11:06:28 在 ?…

lol新服務器怎么發信息,《英雄聯盟手游》國服新消息 最新玩法發布

大家期待已久的《英雄聯盟手游》終于有新消息了,此次發布的消息主要是介紹《英雄聯盟手游》的玩法,國服具體發布時間并沒有公布。那么接下來看看此次發布的具體內容吧。關注白森森,永遠不迷路!一、英雄類型英雄聯盟手游的英雄類型分類與端游一…

jdk、jre及jvm的關系

很多程序員已經干了一段時間java了依然不明白jdk與jre的區別。 JDK就是Java Development Kit.簡單的說JDK是面向開發人員使用的SDK,它提供了Java的開發環境和運行環境。SDK是Software Development Kit 一般指軟件開發包,可以包括函數庫、編譯程序等。 …

我的理解之JAVA中的4種訪問權限

一、Java中有四種訪問權限,private、default(一般省略)、public、protected。 private: Java語言中對訪問權限限制的最窄的修飾符,一般稱之為“私有的”。被其修飾的屬性以及方法只能被該類的對象訪問,其子類不能訪問&…

ssh連接阿里云服務器遇到的坑

1. 出現‘Host key verification failed.’ 解決方案在這里找到: https://askubuntu.com/questions/45679/ssh-connection-problem-with-host-key-verification-failed-error 2. 自動斷開—每隔一兩分鐘就自動斷開 參考: https://superuser.com/quest…

云服務器文件傳輸問題

最近再做一個web項目,目前決定先把應用放在云服務器上。我選擇的云主機是aliyun的Ubuntu 16.04主機。部署好云主機環境后,就需要把我在本地開發好的程序上傳到云主機了。剛開始打算用ftp協議來傳輸,于是參照網上的教程(Ubuntu 16.…

Naive Bayes Classifier - 樸素貝葉斯分類器

Naive Bayes Classifier - 樸素貝葉斯分類器 簡介 在機器學習中,樸素貝葉斯分類器是一系列基于“貝葉斯原理”和“特征之間獨立分布假設”的概率分類器的總稱。把它的名稱分成兩部分來看,一部分是“貝葉斯”對應的是“貝葉斯原理”;另一部分…

Hello,My first blog!

這是我的第一個博客,之所以想開始寫博客主要有幾個原因: 1)剛剛畢業,想記錄自己在技術方面的成長; 2)不斷學習,不斷思考,活到老,學到老; 3)希望…

如何在Oracle官網上下載歷史版本的JDK

點擊下面鏈接: http://java.sun.com/products/archive/ 選擇對應的版本,然后它需要你注冊一個Oracle賬號,注冊一個然后登陸就行了

PL/SQL Developer調試Oracle存儲過程

1,選中存儲過程,右鍵,點擊Edit,會打開一個窗口,提示錯誤信息2,添加debug information3,開始調試4,點擊調試窗口上面的按鈕進行調試

Oracle復雜查詢

1、 列出至少有一個員工的所有部門編號、名稱,并統計出這些部門的平均工資、最低工資、最高工資。 1、確定所需要的數據表: dept表:部門名稱;emp表:統計信息; 2、確定已知的關聯字段: emp.de…

TCP三次握手和四次揮手以及11種狀態

TCP三次握手和四次揮手以及11種狀態 1、三次握手 置位概念:根據TCP的包頭字段,存在3個重要的標識ACK、SYN、FIN ACK:表示驗證字段 SYN:位數置1,表示建立TCP連接 FIN:位數置1,表示斷開TCP連…

計算機網絡體系結構——各層的功能

OSI七層架構 物理層主要功能:實現比特流的透明傳輸。基本單位:比特。 數據鏈路層主要功能 :封裝成幀 。把幀從原MAC傳到目的MAC(相鄰節點之間幀的透明傳輸) 差錯檢測 循環冗余檢測法。只檢測有沒有比特錯誤&#xf…

HTTP報文分析

一、HTTP請求報文解剖 HTTP請求報文由3部分組成(請求行請求頭請求體): 下面我們基于socket編寫一個簡單的HTTP server import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.Inp…

SSM框架整合一(springmvc+spring+mybatis+maven+tomcat)

一,環境說明 jdk1.7.0_07(cmd命令行輸入java -version查看),點擊下載 eclipse Kepler Service Release 2 apache-maven-3.3.9(cmd命令行輸入mvn -v查看),點擊下載 apache-tomcat-7.0.52,點擊下載 mysql-5.5.28-winx64&#xff0c…

如何在windows機器上安裝apache ab

為什么要使用apache ab,apache ab的是用來干嘛的,apache ab的命令? 如果您是來找上面這些問題的答案,那么請立刻關掉當前頁面,因為這篇文章是純粹的安裝教程,避免浪費時間。 一,安裝環境 win…

apache log4j入門

學習一項新東西之前,我常常問自己: 這項技術是什么? 這項技術為我們做了什么? 為什么不用其他類似的技術? 如何使用這項技術? 于是我帶著這些問題開始學習apache log4j 一,apache log4j是…