签名说明
由于 XT 需要为第三方平台提供一些开放接口,因此需要考虑数据安全问题。
例如数据是否被篡改、数据是否过期、数据是否可重复提交,以及接口的访问频率。
其中,数据是否被篡改是最重要的问题。
说明
-
请先在用户中心申请 appkey 和 secretkey。每个用户的 appkey 和 secretkey 都不相同。
-
添加 timestamp,其值应为发送请求时的 Unix 时间戳(毫秒)。
服务器根据此值验证数据时间。 -
添加 signature,其值通过特定的签名算法规则获得。
-
添加 recvwindow(定义请求的有效时间)。
- 当服务器接收到请求时,会检查请求中的时间戳,确保其在 2 到 60 秒之间。
- 任何时间戳超过 5000 毫秒的请求都被视为无效。
- 可使用可选参数
recvWindow
设置时间窗口值。 - 如果服务器判定客户端的时间戳提前超过 1 秒,请求也将无效。
- 网络状况可能导致延迟波动,因此可根据需要调整
recvWindow
。 - 不建议:
recvWindow
超过 5 秒。
-
添加 algorithm(签名方法/算法)。
用户根据哈希协议计算签名。建议使用 HmacSHA256。支持的算法:
- HmacMD5
- HmacSHA1
- HmacSHA224
- HmacSHA256(推荐)
- HmacSHA384
- HmacSHA512
请求头参数
名称 | 必填 | 示例 | 描述 |
---|---|---|---|
validate-appkey | true | dbefbc809e3e83c283a984c3a1459732ea7db1360ca80c5c2c8867408d28cc83 | - |
validate-timestamp | true | 1641446237201 | - |
validate-signature | true | 0a7d0b5e802eb5e52ac0cfcd6311b0faba6e2503a9a8d1e2364b38617877574d | - |
validate-recvwindow | true | 5000(毫秒) | - |
validate-algorithms | true | HmacSHA256 | HmacMD5、HmacSHA1、HmacSHA224、HmacSHA256、HmacSHA384、HmacSHA512。默认:HmacSHA256 |
validate-signversion | false | 1.0 | 保留字段,签名版本号 |