APP方式
通过开放平台应用方式接入(APP方式,更安全的方式)
获取方式:前往用户中心(https://simpletex.cn/user/center),开通开放平台功能后,在“应用列表”菜单处创建即可,创建完成后您将获得该新应用的APP ID以及APP Secret,注意,APP Secret是重要敏感信息,仅展示一次,如果丢失请重新创建应用。
请求方式:
开放平台应用的鉴权方式需要对POST上传的data数据(即表单键值对,非二进制文件部分的参数)进行签名。签名的算法流程为:
(1) 生成16位的随机字符串(数字与大小写字母),放入header的
random-str
字段(2) 获取当前时间戳,放入header的
timestamp
字段(精确到秒即可)(3) 将当前使用的APP ID信息,放入header的
app-id
字段(4) 将data数据里其他key取出,并基于字符串顺序对key排序(从a-z,升序),通过
&
连接各key与对应的字段信息,如key1=xxx&key2=xxx&...&keyn=xxx
(其中1-3步中的random-str
,timestamp
,app-id
字段也需加入这个字符串中(5) 将APP Secret信息通过
&secret=xxx
的方式加在第4步生成的字符串的结尾(无视key的排序顺序),变为key1=xxx&key2=xxx&...&keyn=xxx&secret=xxx
(6) 对上一步得到的字符串通过MD5签名算法进行签名,并获取其字符串表达(32位长度)
(7) 将这一签名字符串放入
header
中,字段名为sign
(8) 最后完成的用于鉴权的
header
格式应为header={ "app-id":xxx, "random-str":xxx, "timestamp":xxx, "sign":xxx }
(注意不能业务请求中的其他地方包含APP Secret信息,该信息仅仅用以生成签名以证明合法身份,不需要包含在请求体内)
(9)至此完成APP鉴权所需信息准备
(10) 示例
- 原data信息:
use_batch=True
(在这个例子中我们使用下面展示的这个)
{ "use_batch"=True }
- 获取其他所需的信息:
{ 'timestamp': '1675550577', 'random-str': 'mSkYSY28N4WkvidB', 'app-id': '19X4f10YM1Va894nvFl89ikY', // 仅供测试使用 }
- 示例的APP Secret为
fu4Wfmna4153DFN12ctBsPqgVI3vvGGK
,则可以计算得出待签名的字符串为(字段排序为app-id
,random-str
,use_batch
,secret
):app-id=19X4f10YM1Va894nvFl89ikY&random-str=mSkYSY28N4WkvidB×tamp=1675550577&use_batch=True&secret=fu4Wfmna4153DFN12ctBsPqgVI3vvGGK
- 使用MD5算法计算签名,为
5f271e1deccd95d467c7dd430ca2c8b1
(可以使用(http://tool.pfan.cn/md5)网站进行测试,或搜索在线MD5) - 最终header信息为:
{ 'timestamp': '1675550577', 'random-str': 'mSkYSY28N4WkvidB', 'app-id': '19X4f10YM1Va894nvFl89ikY', 'sign': '5f271e1deccd95d467c7dd430ca2c8b1' }
- 原data信息: