# 签名字符串
# 格式
appid=系统appid&body=请求对象的Json字符串&mdl_name=模块名称&svc_name=服务名称&key=系统的签名key
# 示例
系统的appid:9d6ab21aab7c491a80256fbc9180c4f8
系统的签名key:50dfe69f33904468a32214d9ede29395230cbdc196e541a6b380ee7b50eca3939eb6c66f90ec44b395dc39533a2a0ab77ab4ea77aa2e45809a77647e270fe862
系统名称:prj_c
模块名称:mdl_test
服务名称:svc_test_query_function
服务请求的数据对象:
{
"sys_head": {
"usr_id": "",
"org_id": "",
"sys_id": "",
"mdl_func_id": "",
"login_key": ""
},
"data": {
"sys_id": "",
"mdl_func_id": "",
"mdl_func_parent_id": "",
"path": "",
"component": "",
"redirect": "",
"name": "",
"hidden": "",
"icon": "",
"isKeepAlive": "",
"title": ""
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
那么,签名的字符串为:
appid=9d6ab21aab7c491a80256fbc9180c4f8&body={"sys_head":{"usr_id":null,"org_id":null,"sys_id":null,"mdl_func_id":null,"login_key":"463635e7e4c8420580fc347b7238b4c3"},"data":{"sys_id":"","mdl_func_id":"","mdl_func_parent_id":"","path":"","component":"","redirect":"","name":"","hidden":"","icon":"","isKeepAlive":"","title":""}}&mdl_name=mdl_test&svc_name=svc_test_query_function&sys_name=kedao_register&key=50dfe69f33904468a32214d9ede29395230cbdc196e541a6b380ee7b50eca3939eb6c66f90ec44b395dc39533a2a0ab77ab4ea77aa2e45809a77647e270fe862
注意:签名字符串是没有换行的
# 生成签名
根据创建系统时选择的签名算法 MD5(已不安全) 或 SHA256(推荐),对签名字符串进行加密,得到 sign 的值。
在 JavaScript 中实现如下:
// 拼接参与签名的字符串
let str_sign = ''
str_sign += 'appid=' + request_obj.appid
str_sign += '&body=' + (typeof (request_obj.body) === 'object' ? JSON.stringify(request_obj.body) : request_obj.body)
str_sign += '&mdl_name=' + request_obj.mdl_name
str_sign += '&svc_name=' + request_obj.svc_name
str_sign += '&sys_name=' + request_obj.sys_name
str_sign += '&key=' + api_sign_key
// 签名的结果
let sign = ''
// str_sign 为拼接好的签名格式的字符串
// sign = MD5(str_sign).toString()
// 或
sign = SHA256(str_sign).toString()
2
3
4
5
6
7
8
9
10
11
12
13
14
15
← 7、调用服务 9、C++ 服务开发 →