我正在使用DocuSign connect在文档发生事件后更新我的应用程序的状态。
我已经设置了我的帐户:
目前我的发布网址"看起来与https://key:secret@example.herokuapp.com
类似。然而,当我查看日志时,我似乎总是收到类似于:
error: Exception in EnvelopeIntegration.RunIntegration: key :: https://key:secret@example.herokuapp.com/webhook :: Error - The remote server returned an error: (401) Unauthorized
当我将信封数据本地复制到文件(complete-webhook.xml)并通过命令行运行以下命令时,它似乎成功运行:
curl -i -X POST -d @complete-webhook.xml https://key:secret@example.herokuapp.com/webhook
有没有人对这可能发生的原因有任何想法?
答案 0 :(得分:1)
当您使用https://username:password@example.com/
等网址时,您的客户端会获取网址的username:password
部分并使用它来创建Authorization: Basic
标头。
您可以自己尝试,创建requestb.in,然后使用curl命令
curl -X POST -d "fizz=buzz" http://username:password@requestb.in/12345
# where 12345 is your requestb.in address
requestb.in上的结果:
/12345
的请求(传入的网址不包含用户名或密码)Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
如果您将dXNlcm5hbWU6cGFzc3dvcmQ=
放入base64解码器,则会获得username:password
答案,此时,Connect系统在调用侦听器时不支持发送基本身份验证信息。我已提交内部功能请求。
解决方法
您的侦听器网址可以包含用作密码的查询参数。例如。 `example.com/webhook/?pw=9e47a953-c105-44c5-ba5c-4bb77d63694d
然后,在您的侦听器中,只需拒绝任何不包含pw
查询参数和您选择的值的请求。
在向听众发出的请求中,Connect系统将使用您在添加Connect订阅时最初设置的任何查询参数。