TCP接口
为了在某些时候您认为http请求容易被破解或其他原因Authdog提供了两个用于授权的TCP接口
TCP API服务器:tcpapi.authdog.cn:3001
请求TCP报文格式如下
<json_length>#{
"pattern": "操作符",
"data": "请求数据字符串",
"id": "消息ID"
}
📌
解析
<json_length> 为后面的json字符串长度 不包括#
# 固定
后面接着json字符串 整体以字符串形式发送报文
注意:若报文格式有误将不会得到回应
响应TCP报文格式如下
<json_length>#{"response":"响应字符串","isDisposed":true,"id":"请求消息ID"}
1、设备ID模式授权
操作符 001
请求数据
{
"appid": 11,
"ciphertext": {
"deviceId": "fa6a91ef9baa242de0b354a212e8cf83"
}
}
📌
解析
操作符 001 固定
appid 为应用ID
ciphertext 为数据内容
deviceId 为设备ID
整体请求数据json应该转为字符串后放到data中
示例:
169#{
"pattern": "001",
"data": "{\"appid\": 11, \"ciphertext\": {\"deviceId\": \"fa6a91ef9baa242de0b354a212e8cf83\"}}",
"id": "399b272e-233d-4d3a-973a-28cad1814507"
}
响应示例:
576#{"response":"{\"code\":200,\"msg\":\"OK\",\"data\":{\"device\":{\"id\":3,\"createdAt\":1680941051183,\"updatedAt\":1680948581000,\"developerId\":3,\"appid\":11,\"deviceId\":\"fa6a91ef9baa242de0b354a212e8cf83\",\"otherInfo\":\"\",\"brand\":\"XIAOMI\",\"model\":\"MI13\",\"osType\":\"android\",\"status\":\"normal\",\"balance\":0,\"expirationTime\":1684483486000,\"trialExpiration\":1680941051000,\"lastLoginTime\":1680941051000},\"auth\":{\"result\":true,\"message\":\"\",\"expire\":1684483486000,\"balance\":0}}}","isDisposed":true,"id":"399b272e-233d-4d3a-973a-28cad1814507"}
1、用户模式授权
操作符 002
请求数据
{
"appid": 9,
"ciphertext": {
"name": "dogcat666",
"password": "25005443303cc9b58ed54ed67a187ea4"
}
}
💡
解析
与上面不同的是ciphertext中参数
name为用户名
password为用户密码MD5
整体请求数据json应该转为字符串后放到data中
示例:
193#{
"pattern": "002",
"data": "{\"appid\": 9, \"ciphertext\": {\"name\": \"dogcat666\", \"password\": \"25005443303cc9b58ed54ed67a187ea4\"}}",
"id": "399b272e-233d-4d3a-973a-28cad1814507"
}
响应示例:
619#{"response":"{\"code\":200,\"msg\":\"OK\",\"data\":{\"user\":{\"id\":6,\"createdAt\":1680894081345,\"updatedAt\":1680963833000,\"developerId\":3,\"appid\":9,\"name\":\"dogcat666\",\"mobile\":\"13000000009\",\"otherInfo\":\"\",\"status\":\"normal\",\"balance\":0,\"currentDeviceId\":\"fa6a91ef9baa242de0b354a212e8cf83\",\"unbindCount\":3,\"expirationTime\":1776930982000,\"trialExpiration\":1680894081000,\"lastLoginTime\":1680894081000,\"useDeviceName\":\"XIAOMI-MI13\"},\"auth\":{\"result\":true,\"message\":\"\",\"expire\":1776930982000,\"balance\":0}}}","isDisposed":true,"id":"399b272e-233d-4d3a-973a-28cad1814507"}
注意
具体响应消息中属性解释请查看HTTP的用户登录和设备授权接口
请求加密
与HTTP接口加密方法和规则一致,其中消息内容的ciphertext字段为加密内容,加密后使用base64字符串为值,并且data中加入key属性(如果需要的话 具体请参照HTTP接口加密规则)
AES加密data内容示例
{
"appid": 9,
"ciphertext": "U2FsdGVkX1+eJ3SjJye5dbqIvOyiyYExY6hHHqlyXfeNtZ31JVy0gp3BIAmtLcLg0v7NSq9YarsTjWuDNL90REIQn3fNoigCEShdR+yoVo2gXmEJoefizbkc9Hk9lGXTsGHGkReGJxg7DiwU59TI/w=="
}
ECDH、RSA加密data内容示例
{
"appid": 9,
"ciphertext": "U2FsdGVkX1+eJ3SjJye5dbqIvOyiyYExY6hHHqlyXfeNtZ31JVy0gp3BIAmtLcLg0v7NSq9YarsTjWuDNL90REIQn3fNoigCEShdR+yoVo2gXmEJoefizbkc9Hk9lGXTsGHGkReGJxg7DiwU59TI/w==",
"key": "客户端生成的公钥base64"
}