接口使用前的准备工作
在使用云信SDK之前需要在飞天云信IDaaS管理平台添加【认证API】,管理平台会分配【应用服务地址】、【应用标识】和【应用安全密钥】用于接口调用。因此,在集成云信SDK之前请务必先完成此步骤!
飞天云信IDaaS管理平台添加【认证API】方法如下:
管理员账号登录飞天云信IDaaS管理平台后,点击【应用管理】-【企业应用列表】-【添加应用】,打开添加应用界面,选择认证API,并且根据界面上的提示信息输入或选择对应的内容,点击【创建】按钮,认证API创建成功。

下列为云信SDK接口的说明。
接口签名说明
飞天云信IDaaS管理平台对外提供HTTPSRest方式的接口,所有的请求均采用POST方法。编码方式为UTF-8,消息体参数及返回结果为JSON格式。
注意:使用API前需要先获取apikey和apisecret。apikey用于标识访问的应用,apisecret用于传输数据时,对传输报文进行签名。
报文签名说明:
第一步:各接口中非空参数按照参数名ascii码从小到大排序,使用URL键值对的格式,拼接成待签名字符串,即
key1=value1&key2=value2&key3=value3
拼接成字符串。
假设发送的参数为:
{ apikey : 9A0A8659F005D6984697E2CA0A9CF3B7, timestamp :20181221162001, nonce : dpRxkhjbauiclpKoqt }
则待签名数据
apikey=9A0A8659F005D6984697E2CA0A9CF3B7&nonce=dpRxkhjbauiclpKoqt×tamp=20181221162001
第二步: 使用apisecret作为签名密钥,对A进行签名,得到签名结果B
B=HmacSHA256(A, appsecret);
第三步:将B加入到参数列表中,得出最终发送的数据为:
{ apikey : 9A0A8659F005D6984697E2CA0A9CF3B7, timestamp :20181221162001, nonce : dpRxkhjbauiclpKoqt, sign:Base64(B) }
签名示例:
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.security.MessageDigest;
import java.security.SecureRandom;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Base64;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import com.alibaba.fastjson.JSON;
public static void main(String[] args) {
try{
String appsecert = "<你的apisecret>"; //应用apisecret
Map<String,Object> data = new HashMap<String,Object>(); //待签名数据,请参照签名生成流程生成
String sign = generateSignature(data, apisecert, "HMAC-SHA256"); //生成数据签名
}catch(Exception e){
e.printStackTrace();
}
}
public static String generateSignature(final Map<String,Object> data, String apisecret, String signType) // 签名生成方法
throws Exception {
Set keySet = data.keySet();
String[] keyArray = (String[]) keySet.toArray(new String[keySet.size()]);
Arrays.sort(keyArray);
StringBuilder sb = new StringBuilder();
for (String k : keyArray) {
if (k.equals("sign")) {
continue;
}
if (data.get(k) == null || "null".equals(data.get(k))) { // 参数值为空,则不参与签名
data.remove(k);
continue;
}
Object value = data.get(k);
if (value instanceof Integer) {
value = sb.append(k).append("=").append(value).append("&");
} else {
if (String.valueOf(value).trim().length() > 0) {
sb.append(k).append("=").append(String.valueOf(value).trim()).append("&");
}
}
}
String sbr = sb.substring(0, sb.length() - 1);
if ("MD5".equals(signType)) {
java.security.MessageDigest md = MessageDigest.getInstance("MD5");
byte[] array = md.digest(sbr.getBytes("UTF-8"));
return Base64.getUrlEncoder().encodeToString(array); // 16进制base64形式
} else if ("HMAC-SHA256".equals(signType)) {
Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
SecretKeySpec secret_key = new SecretKeySpec(apisecret.getBytes("UTF-8"), "HmacSHA256");
sha256_HMAC.init(secret_key);
byte[] array = sha256_HMAC.doFinal(sbr.getBytes("UTF-8"));
return Base64.getUrlEncoder().encodeToString(array); // 16进制base64形式
}
return null;
}
用户接口
1、检查用户是否存在
接口功能:判断用户是否已经存在。
https://serverurl/authcenterserver/api/sdk/user/v1/user_is_exist
参数说明:
参数 | 说明 |
---|---|
username | 用户名 |
apiKey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示存在,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; username:用户名,如需获取,可通过getJsonValue(“属性名”)获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。本请求示例:code={code}&msg={msg}&nonce={nonce}&username={username}) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"成功", "code":0, "username":"testuser",
"nonce":"testnonce", "sign":"testsign" } ]
2、用户动态口令认证
接口功能:通过用户名的动态口令认证(可认证手机令牌和硬件令牌)。
https://serverurl/authcenterserver/api/sdk/otp/v1/user_otp_auth
参数说明:
参数 | 说明 |
---|---|
username | 用户名 |
otp | 手机令牌或硬件令牌产生的动态口令 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; username:用户名,如需获取,可通过getJsonValue(“属性名”)获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"成功", "code":0, "username":"testuser",
"nonce":"testnonce", "sign":"testsign" } ]
手机令牌
1、检查是否已经激活手机令牌
接口功能:检查用户是否已经激活手机令牌。
https://serverurl/authcenterserver/api/sdk/mobileotp/v1/mobile_token_is_actived
参数说明:
参数 | 说明 |
---|---|
username | 用户名 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示已激活,211表示未激活,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; username:用户名,如需获取,可通过getJsonValue(“属性名”)获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"用户未激活手机令牌", "code":211, "username":"testuser",
"nonce":"testnonce", "sign":"testsign" } ]
2、获取手机令牌激活数据
接口功能:调用此接口获取手机令牌激活二维码数据。
https://serverurl/authcenterserver/api/sdk/mobileotp/v1/mobile_token_get_activedata
参数说明:
参数 | 说明 |
---|---|
username | 用户名 |
type | 激活数据类型,预留参数,传空字符串或null均可 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; activecode:激活码,使用此数据生成二维码供手机云信令激活手机令牌; username:用户名,如需获取,可通过getJsonValue(“属性名”)获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"成功", "code":0, "activecode":"cloud://r-zbXb4j88-7e8lFksmu5ddirriJAiKNWQiqje2UN03u5oE4ioClJc8weC6KOf1bu1k7QTzgUifpvGZ0 N7ayEFrcRf3LSH1SjIbRlqp85XKxQ1w_MB5Gja3l9uioe1bvGu0_wrYKjrtMHFLbpVkA0RqNHhHadI4P5_6RA-MihwKzMFotZZfH8q k4PxEu4vTiW8OMGg46PXJ76GAVkcWDBAKiUDTDNgdHvPOZPiNl7C5NzrCbpNFSx_4BrH1WwrsQApvMeanT1ub7IosDsjBafynSAQ1B _AE5sPv-iZcYXKm5Cl1xwiXa4HI8nZ6U8UxtG2Jx5WBKGbkoMsf5nNPqVG6ukF6B41xNy4JgmYuHRl3tFy0WqXFO_PlGQzVTO2-Fyn 5N-YO5NSAw410LvRZk4A/I6kpIssHbQxuZCFGD6wp8Coc-K50BHHV0HrGz27B7bw", "username":"testuser",
"nonce":"testnonce", "sign":"testsign" } ]
3、OTP认证(标准双因素)
接口功能:使用手机云信令产生的口令进行OTP认证。
https://serverurl/authcenterserver/api/sdk/mobileotp/v1/mobile_token_user_otp_auth
参数说明:
参数 | 说明 |
---|---|
username | 用户名 |
otp | 手机云信令产生的口令 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; username:用户名,如需获取,可通过getJsonValue(“属性名”)获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"动态口令验证失败", "code":401, "username":"testUser",
"nonce":"testnonce", "sign":"testsign" } ]
4、推送认证
接口功能:将认证请求推送到手机云信令,使用此功能需要打开手机云信令进行认证操作。调用完此接口后需要立即调用“获取手机令牌推送/扫码认证结果”接口进行认证结果获取。
https://serverurl/authcenterserver/api/sdk/mobileotp/v1/mobiletokenpushauth
参数说明:
参数 | 说明 |
---|---|
username | 用户名 |
appName | 集成认证接口应用系统的名称 |
clientIp | 集成认证接口应用系统的用户的访问IP(用于在手机云信令中显示认证者IP) |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; reqid:请求id,用于后续“获取手机令牌推送/扫码认证结果”接口使用; username:用户名,如需获取,可通过getJsonValue(“属性名”)获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"认证处理中", "code":422, "reqid":"p10z0i01iad", "
username"
:"
testUser",
"nonce":"testnonce", "sign":"testsign" } ]
5、获取认证二维码
接口功能:扫描认证时,获取生成二维码的数据。调用完此接口后需要立即调用“获取手机令牌推送/扫码认证结果”接口进行认证结果获取。
https://serverurl/authcenterserver/api/sdk/mobileotp/v1/mobile_token_get_auth_qrcode
参数说明:
参数 | 说明 |
---|---|
appName | 集成认证接口应用系统的名称 |
clientIp | 集成认证接口应用系统的用户的访问IP(用于在手机云信令中显示认证者IP) |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; qrcodedata:认证二维码数据,使用此数据生成二维码供手机云信令扫码认证; reqid:请求id,用于后续“获取手机令牌扫码认证结果”接口使用; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"成功", "code":0, "qrcodedata":"cloud://pnrxdlSw1LBxxptpV1dDWq_KbcwXXk2h4_3SZrPFWQRP3FPh_OmeG1OdwpWI0VBXF3uW6vgTOL0YeV79qsK4iTWGA9xp77P07W--JCrgY3M/yaN00W9jZ7SUb-R4_b-DCDY-Cjgv69A79h0ygFEQI2s", "reqid":"91898e62-29c5-46d8-9775-6a745bd8f67f",
"nonce":"testnonce", "sign":"testsign" } ]
6、获取手机令牌推送/扫码认证结果
接口功能:产生扫描认证二维码或推送认证后,调用此接口获取用户认证响应的结果。
https://serverurl/authcenterserver/api/sdk/mobileotp/v1/mobile_token_query_auth_result
参数说明:
参数 | 说明 |
---|---|
reqid | 请求唯一标识,由”获取认证二维码”接口返回 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,422表示仍等待客户进行响应,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取username用户响应后返回的用户名,如需获取,可通过getJsonValue(“属性名”)获取; username:用户名,如需获取,可通过getJsonValue(“属性名”)获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"认证处理中", "code":422, "
username"
:"testuser",
"nonce":"testnonce", "sign":"testsign" } ]
* 调用补充说明:
当code返回码返回422时,说明用户暂未响应,可再次间隔指定时间轮询调用此接口进行获取,可轮询指定次数。
调用示例:

7、解绑令牌
接口功能:解除用户和手机令牌的绑定关系。
https://serverurl/authcenterserver/api/sdk/mobileotp/v1/mobile_token_unbind
参数说明:
参数 | 说明 |
---|---|
username | 用户名 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; username:用户名,如需获取,可通过getJsonValue(“属性名”)获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"成功", "code":0, "username":"testuser",
"nonce":"testnonce", "sign":"testsign" } ]
UAF 令牌
1、检查是否已经激活UAF令牌
接口功能:检查用户是否已经激活uaf令牌。
https://serverurl/authcenterserver/api/sdk/uaf/v1/uaf_is_actived
参数说明:
参数 | 说明 |
---|---|
username | 用户名 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示已激活,218表示未激活,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; username:用户名,如需获取,可通过getJsonValue(“属性名”)获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"用户未激活
UAF令牌", "code":218, "username":"testuser",
"nonce":"testnonce", "sign":"testsign" } ]
2、获取UAF令牌激活数据
接口功能:调用此接口获取UAF令牌激活二维码数据。
https://serverurl/authcenterserver/api/sdk/uaf/v1/uaf_get_activedata
参数说明:
参数 | 说明 |
---|---|
username | 用户名 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; activecode:激活码,使用此数据生成二维码供手机云信令激活UAF令牌; username:用户名,如需获取,可通过getJsonValue(“属性名”)获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"成功", "code":0, "activecode":"cloud://r-zbXb4j88-7e8lFksmu5ddirriJAiKNWQiqje2UN03u5oE4ioClJc8weC6KOf1 bu1k7QTzgUifpvGZ0N7ayEFrcRf3LSH1SjIbRlqp85XKxQ1w_MB5Gja3l9uioe1bvGu0_wrYKjrtMHFLb pVkA0RqNHhHadI4P5_6RA-MihwKzMFotZZfH8qk4PxEu4vTiW8OMGg46PXJ76GAVkcWDBAKiUDTDNgdHv POZPiNl7C5NzrCbpNFSx_4BrH1WwrsQApvMeanT1ub7IosDsjBafynSAQ1B_AE5sPv-iZcYXKm5Cl1xwi Xa4HI8nZ6U8UxtG2Jx5WBKGbkoMsf5nNPqVG6ukF6B41xNy4JgmYuHRl3tFy0WqXFO_PlGQzVTO2-Fyn5 N-YO5NSAw410LvRZk4A/I6kpIssHbQxuZCFGD6wp8Coc-K50BHHV0HrGz27B7bw", "username":"testuser",
"nonce":"testnonce", "sign":"testsign"
} ]
3、推送认证
接口功能:将UAF认证请求推送到手机云信令,使用此功能需要打开手机云信令进行认证操作。调用完此接口后需要立即调用“获取UAF令牌推送/扫码认证结果”接口进行认证结果获取。
https://serverurl/authcenterserver/api/sdk/uaf/v1/uaf_push_auth
参数说明:
参数 | 说明 |
---|---|
username | 用户名 |
appName | 集成认证接口应用系统的名称 |
clientIp | 集成认证接口应用系统的用户的访问IP(用于在手机云信令中显示认证者IP) |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; reqid:请求id,用于后续“获取UAF令牌推送/扫码认证结果”接口使用; username:用户名,如需获取,可通过getJsonValue(“属性名”)获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"认证处理中", "code":422, "reqid":"p10z0i01iad", "username":"testuser",
"nonce":"testnonce", "sign":"testsign" } ]
4、获取认证二维码
接口功能:扫描认证时,获取生成二维码的数据。调用完此接口后需要立即调用“获取UAF令牌推送/扫码认证结果”接口进行认证结果获取。
https://serverurl/authcenterserver/api/sdk/uaf/v1/uaf_get_auth_qrcode
参数说明:
参数 | 说明 |
---|---|
appName | 集成认证接口应用系统的名称 |
clientIp | 集成认证接口应用系统的用户的访问IP(用于在手机云信令中显示认证者IP) |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; qrcodedata:认证二维码数据,使用此数据生成二维码供手机云信令扫码认证; reqid:请求id,用于后续“获取UAF令牌扫码认证结果”接口使用; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"成功", "code":0, "qrcodedata":"cloud://pnrxdlSw1LBxxptpV1dDWq_KbcwXXk2h4_3SZrPFWQRP3FPh_OmeG1OdwpWI0VBXF3uW6vgTOL0YeV79qsK4iTWGA9xp77P07W--JCrgY3M/yaN00W9jZ7SUb-R4_b-DCDY-Cjgv69A79h0ygFEQI2s", "reqid":"91898e62-29c5-46d8-9775-6a745bd8f67f",
"nonce":"testnonce", "sign":"testsign" } ]
5、获取UAF令牌推送/扫码认证结果
接口功能:产生扫描认证二维码或推送认证后,调用此接口获取用户认证响应的结果。
https://serverurl/authcenterserver/api/sdk/uaf/v1/uaf_query_auth_result
参数说明:
参数 | 说明 |
---|---|
reqid | 请求唯一标识,由”获取认证二维码”接口返回 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,422表示仍等待客户进行响应,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; username:用户响应后返回的用户名,如需获取,可通过getJsonValue(“属性名”)获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [
stateCode=0,
stateMsg=操作成功,
data={
"msg":"认证处理中",
"code":422,
"username":"testuser",
"nonce":"testnonce",
"sign":"testsign"
}
]
* 调用补充说明:
当code返回码返回422时,说明用户暂未响应,可再次间隔指定时间轮询调用此接口进行获取,可轮询指定次数。
调用示例:
6、解绑令牌
接口功能:解除用户和UAF令牌的绑定关系。
https://serverurl/authcenterserver/api/sdk/uaf/v1/uaf_unbind
参数说明:
参数 | 说明 |
---|---|
username | 用户名 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; username:用户名,如需获取,可通过getJsonValue(“属性名”)获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"成功", "code":0, "username":"testUser",
"nonce":"testnonce", "sign":"testsign" } ]
硬件令牌
1、绑定硬件令牌
接口功能:将用户和硬件令牌进行绑定。
https://serverurl/authcenterserver/api/sdk/hardotp/v1/hard_token_bind
参数说明:
参数 | 说明 |
---|---|
username | 用户名 |
token | 令牌号 |
otp | 动态口令 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示已激活,211表示未激活,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; username:用户名,如需获取,可通过getJsonValue(“属性名”)获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"成功", "code":0, "username":"testuser",
"nonce":"testnonce", "sign":"testsign" } ]
2、解绑硬件令牌
接口功能:将用户和硬件令牌进行解绑。
https://serverurl/authcenterserver/api/sdk/hardotp/v1/hard_token_unbind
参数说明:
参数 | 说明 |
---|---|
username | 用户名 |
token | 令牌号 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示已激活,211表示未激活,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; username:用户名,如需获取,可通过getJsonValue(“属性名”)获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"成功", "code":0, "username":"testuser",
"nonce":"testnonce", "sign":"testsign" } ]
3、硬件令牌用户名认证
接口功能:使用用户名和硬件令牌产生的口令进行动态口令认证。
https://serverurl hardTokenUserOtpAuth(String username, String otp);
参数说明:
参数 | 说明 |
---|---|
username | 用户名 |
otp | 硬件令牌产生的口令 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; username:用户名,如需获取,可通过getJsonValue(“属性名”)获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"动态口令验证失败", "code":401, "username":"testUser",
"nonce":"testnonce", "sign":"testsign" } ]
4、硬件令牌令牌号认证
接口功能:使用令牌号和硬件令牌产生的口令进行动态口令认证。
https://serverurl hardTokenTokensnOtpAuth(String token, String otp);
参数说明:
参数 | 说明 |
---|---|
token | 令牌号 |
otp | 硬件令牌产生的口令 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"动态口令验证失败", "code":401,
"nonce":"testnonce", "sign":"testsign" } ]
5、硬件令牌用户名同步
接口功能:使用用户名和硬件令牌产生的口令与服务器进行令牌数据同步。
https://serverurl/authcenterserver/api/sdk/hardotp/v1/hard_token_user_otp_sync
参数说明:
参数 | 说明 |
---|---|
username | 用户名 |
otp | 硬件令牌产生的口令 |
nextOtp | 硬件令牌产生下一个口令 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; username:用户名,如需获取,可通过getJsonValue(“属性名”)获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"成功", "code":0, "username":"testUser",
"nonce":"testnonce", "sign":"testsign" } ]
6、硬件令牌令牌号同步
接口功能:使用令牌号和硬件令牌产生的口令与服务器进行令牌数据同步。
https://serverurl/hardTokenTokensnOtpSync(String token, String otp, String nextOtp);
参数说明:
参数 | 说明 |
---|---|
token | 令牌号 |
otp | 硬件令牌产生的口令 |
nextOtp | 硬件令牌产生下一个口令 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"成功", "code":0,
"nonce":"testnonce", "sign":"testsign" } ]
7、硬件令牌启用
接口功能:通过传入令牌号将硬件令牌置为启用状态。
https://serverurl/authcenterserver/api/sdk/hardotp/v1/hard_token_enable
参数说明:
参数 | 说明 |
---|---|
token | 令牌号 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"成功", "code":0
,"nonce":"testnonce", "sign":"testsign" } ]
8、硬件令牌禁用
接口功能:通过传入令牌号将硬件令牌置为禁用状态。
https://serverurl/authcenterserver/api/sdk/hardotp/v1/hard_token_disable
参数说明:
参数 | 说明 |
---|---|
token | 令牌号 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表。 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"成功", "code":0,
"nonce":"testnonce", "sign":"testsign" } ]
9、获取已绑定的硬件令牌号列表
接口功能:通过传入用户名获取已绑定的硬件令牌号列表。
https://serverurl/authcenterserver/api/sdk/hardotp/v1/hard_token_list
参数说明:
参数 | 说明 |
---|---|
username | 用户名 |
apikey | 认证API key |
timestamp | 时间戳,格式yyyyMMddHHmmss |
nonce | 随机字符串,长度不超过32位 |
sign | 请求参数的签名,签名生成方式详见“报文签名说明” |
返回结果说明:
属性名 | 说明 |
---|---|
stateCode | api响应状态返回码,0表示成功,其它值参见状态码列表。 |
stateMsg | 状态描述 |
data | 业务数据,此数据为json格式数据,以下为此接口返回数据说明: code:返回码,0表示成功,其它返回码参见返回码列表。此数据可直接通过api对象的getCode()方法获取; msg:返回描述信息,此数据可直接通过api对象的getMsg()方法获取; username:用户名,如需获取,可通过getJsonValue(“属性名”)获取; tokens:令牌号列表,数据格式为json数组,如:[“令牌号1”, “令牌号2”]; nonce:请求时的nonce,原样带回; sign:请求参数的签名 ,签名生成方式详见“报文签名说明”。 (注:代签名参数只包含data部分,不包含外层属性。) |
返回示例:
ResponseData [ stateCode=0, stateMsg=操作成功, data={ "msg":"成功", "code":0,
"
tokens"
:["
令牌号1"
,"
令牌号2"
], "username":"testUser",
"nonce":"testnonce", "sign":"testsign" } ]
API接口调用状态返回码
返回码 | 说明 |
---|---|
0 | 业务成功响应 |
1 | 请求数据格式错误(需要JSON格式) |
2 | 请求数据格式错误(JWT数据错误) |
6 | 签名验证未通过 |
7 | 时间戳验证未通过 |
9 | 认证API不存在 |
10 | 认证API已锁定 |
11 | 认证API未启用 |
13 | API所在企业未审核通过 |
14 | API所在企业已锁定 |
15 | API所在企业已禁用 |
19 | 参数错误,缺少必填参数 |
100 | 响应状态异常 |
API接口业务处理返回码
返回码 | 说明 |
---|---|
0 | 业务成功 |
1 | 参数错误 |
2 | 失败 |
201 | 用户不存在 |
202 | 用户未启用 |
203 | 用户已锁定 |
204 | 用户未绑定令牌 |
208 | 手机令牌激活码生成失败 |
211 | 用户未激活手机令牌 |
218 | 用户未激活UAF令牌 |
301 | 令牌不存在 |
302 | 令牌未启用 |
303 | 令牌已锁定 |
305 | 该令牌在此企业不存在 |
306 | 解密令牌数据失败 |
401 | 动态口令验证失败 |
402 | 动态口令重放 |
403 | 令牌需要同步 |
404 | 无效认证策略 |
405 | 认证策略允许通过 |
406 | 认证策略拒绝通过 |
407 | 不支持此认证类型 |
411 | 认证策略需要双因素认证 |
412 | 推送认证拒绝通过 |
413 | 业务响应超时 |
414 | 没有可推送的手机令牌 |
415 | 没有可推送的终端 |
416 | 扫码认证失败 |
417 | 扫码用户不匹配 |
418 | 扫码认证请求已过期 |
421 | 没有可同步的令牌类型 |
422 | 认证处理中 |
423 | 云信令客户端参数错误 |
424 | 客户端令牌己删除 |
426 | 无效认证策略 |
427 | 不支持此设备类型 |
433 | 推送太频繁 |
437 | 推送和响应用户不匹配 |
441 | 企业不存在或为不可用状态 |
442 | 认证API状态不可用 |
423 | 云信令客户端参数错误 |
424 | 客户端令牌己删除 |
426 | 无效认证策略 |
427 | 不支持此设备类型 |
433 | 推送太频繁 |
437 | 推送和响应用户不匹配 |
441 | 企业不存在或为不可用状态 |
467 | 位置上送已超时 |
468 | 没有位置上送结果 |
469 | 设备已停用 |
470 | 不支持此认证类型 |
2001 | 接口验证失败数过多,请稍后再试 |
2002 | get接口请求次数超限,请稍后再试 |
2003 | check接口请求次数超限,请稍后再试 |
2004 | verify请求次数超限 |