使用Postman测试Coinbase API分页时出现签名无效错误如何解决
问题修复方案
1. 签名错误修复方法
你的报错核心原因是预请求脚本生成签名时,没有把查询参数纳入签名计算。Coinbase API要求GET请求的签名消息必须包含完整的路径+查询参数,而你当前使用的pm.request.url.getPath()仅能获取到不带查询参数的路径部分,添加limit=50后实际请求路径和签名用的路径不一致,导致签名校验失败。
直接修改预请求脚本中的路径获取逻辑即可:
将原来的代码行:
path: pm.request.url.getPath(),
替换为:
path: pm.request.url.getPathWithQuery(),
如果你后续要发送带请求体的POST/PUT请求,还需要同步修改body的取值逻辑,不要写死为空,改为动态获取实际请求体:
body: pm.request.body.raw || '',
修改完成后重新发起请求即可正常通过签名校验。
2. 请求体对签名生成的影响
Coinbase API的签名计算规则为:签名原始消息 = 时间戳 + 请求方法 + 完整路径(含查询参数) + 请求体原文,请求体是签名原始消息的核心组成部分:
- 只要请求体内容发生任何变化(包括参数顺序调整、空格/换行增减、字符修改),最终生成的签名都会完全不同
- GET请求无请求体时,body部分留空即可,不能填写任意内容
- 带请求体的请求必须保证参与签名的请求体和实际发送的请求体完全一致,否则会直接触发签名无效错误
内容的提问来源于stack exchange,提问作者FiNaR
相关产品推荐
相关产品推荐

