You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DocuSign OAuth2授权码模式取授权码及后端流token无效排查

问题1:授权码模式请求返回HTML,无法获取授权码

你的代码逻辑存在误解,授权码模式的第一步请求本来就会返回HTML页面,这是正常现象:

  • 该请求的作用是生成DocuSign的用户登录授权页面,需要用户手动打开这个页面,完成登录并同意授权后,DocuSign才会将授权码通过重定向返回给你指定的redirect_uri(即https://localhost:3000)。
  • 你直接用requests.get请求只会拿到这个登录页面的HTML,不会自动获取授权码,因为缺少用户交互环节。

修复步骤:

  1. 修正请求URL:去掉末尾多余的问号,改为https://account-d.docusign.com/oauth/auth,避免参数解析异常。
  2. 获取授权码的两种方式:
    • 本地调试:打印请求的完整URL(可以用print(get_r.url)),复制到浏览器中打开,完成登录授权后,浏览器会跳转到https://localhost:3000?code=xxx,从URL的code参数中提取授权码。
    • 自动化场景:使用Selenium等浏览器自动化工具,模拟用户登录授权的操作,抓取重定向后的URL中的code参数。
问题2:Backend Application Flow获取的token无法访问模板列表

你用客户端凭证模式(Backend Application Flow)拿到的token是应用级别的全局token,没有关联到具体的DocuSign用户账号,而模板是属于特定用户的私有资源,因此无法访问。

而你手动获取的token应该是通过授权码模式拿到的用户级token,关联了你的个人DocuSign账号,所以能正常访问该账号下的模板。

解决方案:

  • 若需访问特定用户的模板,必须改用授权码模式获取用户级token,确保token与目标用户绑定。
  • 若必须使用无用户交互的后台访问:
    1. 在DocuSign后台将你的应用配置为允许代表特定用户(开启Impersonation权限)。
    2. 修改get_token函数,在fetch_token时添加 impersonation 头部,指定目标用户ID:
      token = oauth.fetch_token(
          token_url=token_url,
          client_id=client_id,
          client_secret=client_secret,
          headers={"X-DocuSign-Impersonation-User-ID": "你的目标用户ID"}
      )
      
    3. 确保你的应用拥有访问该用户资源的权限。

内容的提问来源于stack exchange,提问作者Lous

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 06:18:19