用途:该技能用于诊断 bitcoin-auth 认证问题,覆盖客户端生成与服务端验证两端,适用于令牌验证失败、出现 invalid signature 或 invalid token 错误、集成 API(尤其 Sigma Auth)调试、令牌生成结果异常、时间偏移、body 哈希不匹配以及 bsm 与 brc77 方案混淆等场景。
主要能力:令牌结构校验、各字段逐项校验、签名验证诊断、常见集成错误排查。令牌为管道分隔格式:pubkey|scheme|timestamp|requestPath|signature,其中 pubkey 为 66 字符十六进制公钥,scheme 为 bsm(旧版)或 brc77(推荐),timestamp 为 ISO8601,requestPath 含查询参数,signature 为 Base64。
使用方式:先用 parseAuthToken 校验结构,确认恰好 5 段;再逐项检查公钥长度与前缀、scheme 取值、时间戳与当前时间差(默认 timePad 5 分钟)、requestPath 是否完全一致、签名长度;最后用 verifyAuthToken 验证,传入 requestPath、服务端当前时间 timestamp、可选 body,以及 timePad 与 bodyEncoding(utf8、hex、base64)。生成端使用 getAuthToken,传入 privateKeyWif、requestPath、body、scheme、bodyEncoding,并通过 X-Auth-Token 请求头发送。
常见错误:令牌段数不为 5、签名验证失败、时间偏移、请求路径不匹配、body 哈希不匹配。对应检查截断或多余管道符、路径与查询参数顺序、时间戳新旧、body 字符串与编码是否一致、scheme 是否匹配。
限制与要求:需 Node.js/Bun 运行时及 @bsv/sdk 对等依赖,安装命令为 bun add bitcoin-auth。诊断时不要记录私钥或 WIF,仅记录公钥、令牌与诊断信息,使用测试密钥并脱敏日志。详细 API 与故障排查见 references/bitcoin-auth-api.md 与 references/common-issues.md。