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

Node.js编程实现DocuSign授权码流程遇问题求助

DocuSign开发问题及解决方案

问题描述

我是DocuSign新手,查阅文档后仍遇到两个问题:

  • 使用TypeScript调用getAuthorizationUri()生成的授权URL始终以accounts.docusign开头,但开发环境需使用account-d.docusign。
  • 无法通过编程方式从授权URL中获取授权码,只能手动复制粘贴,希望实现generateAccessToken()的自动化调用流程。

相关代码:

import { ApiClient } from 'docusign-esign'
const apiClient = new ApiClient()
const url: string = apiClient.getAuthorizationUri(
        config.docusign.INTERGRATION_KEY,
        ['signature'],
        'http://localhost/',
        'code',
        'ready'
    )
console.log(url)
async getToken(authCode){
  const token = await apiClient.generateAccessToken(
INTERGRATION_KEY,
SECRET_KEY,
authCode
)
console.log(token)
return token
}

解决方案

问题1:切换开发环境域名

生成授权URL前,需先为ApiClient设置沙箱环境的basePath,以此关联开发环境域名:

const apiClient = new ApiClient()
// 指定沙箱环境的basePath
apiClient.setBasePath('https://account-d.docusign.com/restapi')
// 再生成授权URL
const url: string = apiClient.getAuthorizationUri(
        config.docusign.INTERGRATION_KEY,
        ['signature'],
        'http://localhost/',
        'code',
        'ready'
    )
console.log(url)

设置后,生成的授权URL会自动使用account-d.docusign作为域名前缀。

问题2:自动获取授权码并换取令牌

需搭建本地回调服务接收DocuSign返回的授权码,实现流程自动化:

  1. 用Express启动本地HTTP服务,监听回调地址:
import express from 'express'
const app = express()

app.get('/', async (req, res) => {
  // 从请求参数中提取授权码
  const authCode = req.query.code as string
  // 调用getToken换取令牌
  const token = await getToken(authCode)
  console.log('获取到令牌:', token)
  res.send('授权完成,令牌已获取')
})

app.listen(80, () => {
  console.log('本地回调服务已启动,监听80端口')
})
  1. 确保DocuSign应用配置的回调地址与本地服务地址一致(即http://localhost/)。
  2. 用户访问生成的授权URL完成登录授权后,DocuSign会自动跳转到本地回调地址,服务通过code参数拿到授权码,进而自动调用generateAccessToken()完成令牌换取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:35:24