采用Authorization Code Grant调用DocuSign API遇invalid_grant错误求助
问题详情
我正在使用DocuSign API的授权码(Authorization Code Grant)模式进行认证,按指引操作后遇到以下问题:
- 通过
btoa('集成密钥','应用密钥')生成了Basic Authorization令牌,结果为"MGVmZTli....OThmZGYz" - 访问授权URL:
https://account-d.docusign.com/oauth/auth?response_type=code&scope=signature&client_id=0efe9bb8-c2c1-4dd9-b0bc-20f7db98fdf3&redirect_uri=http://localhost.com:9824/ds/callback,该请求时常异常,多数情况下会挂起(已在DocuSign应用配置页添加此回调地址) - 将获取到的授权码填入Postman请求体,调用获取token的接口时,得到响应:
{ "error": "invalid_grant", "error_description": "unauthorized_client" }
尝试将回调地址改为https://example.com(已同步更新应用配置),授权请求返回200,但用获取到的code换token时仍得到相同的未授权客户端错误。
解决方案
- 修正Basic Auth令牌生成格式:确保
btoa的输入是集成密钥:应用密钥(必须包含中间的冒号分隔符),正确写法为btoa('{integration-key}:{secret}')。若漏掉冒号,会导致Basic令牌无效,触发未授权错误。 - 严格匹配回调地址:DocuSign对回调地址做精确校验,需确保:
- 应用配置页的回调地址,与授权URL、token请求中使用的地址完全一致(包括协议、域名、端口、路径,无大小写或斜杠差异)
- 本地测试时,
localhost.com可能无法正常解析,建议改用localhost或本地IP,确保回调地址能被你的服务接收
- 检查应用配置状态:在DocuSign应用设置中,确认已启用"Authorization Code Grant"模式,且应用状态为已激活(Active)。
- 确保授权码有效:授权码仅能使用一次,且有效期通常为5分钟。重复使用或过期的授权码会返回
invalid_grant,需每次获取新授权码后立即调用token接口。 - 确认环境一致性:
account-d.docusign.com是Demo环境,需确保你的应用创建在Demo环境下,而非Production环境。环境不匹配会直接导致客户端未授权错误。
内容的提问来源于stack exchange,提问作者amchugh89
相关产品推荐
相关产品推荐

