【问题标题】:Python DocuSign API receiving redirect URI error on the sample appPython DocuSign API 在示例应用程序上接收重定向 URI 错误
【发布时间】:2020-07-27 08:29:17
【问题描述】:

我正在运行 Python 和 React MyUni Education 示例应用程序,并将其加载到我的 localhost3000 中。当我点击登录时,虽然它给了我重定向错误。

我创建了一个新的 Docusign 集成密钥,以防我之前的设置中有错误配置,但错误仍然存​​在: “重定向 URI 未使用 DocuSign 正确注册”错误

Docusign 沙箱配置: 重定向 URI“http://localhost:5001/api”

.env 文件我相信设置了正确的环境变量,但如果我遗漏任何内容,请告诉我。

# Configuration file for the example
DS_CLIENT_ID=blank
DS_CLIENT_SECRET=blank
DS_IMPERSONATED_USER_GUID=blank
DS_TARGET_ACCOUNT_ID=false
DS_PAYMENT_GATEWAY_ID=blank
DS_PAYMENT_GATEWAY_NAME=Stripe
DS_PAYMENT_GATEWAY_DISPLAY_NAME=Stripe
DS_PRIVATE_KEY=blank

# React environment variables
**REACT_APP_DS_RETURN_URL=http://localhost:3000
REACT_APP_API_BASE_URL=http://localhost:5001/api**
REACT_APP_DS_AUTH_SERVER=https://account-d.docusign.com

# Demo Docusign API URL
REACT_APP_DS_DEMO_SERVER=https://demo.docusign.net
REACT_APP_DS_CLICKWRAP_URL=//demo.docusign.net/clickapi/sdk/latest/docusign-click.js

我相信它会影响 JWT,因为当我选择“使用预配置登录继续”时,我也收到了“请求失败,状态代码 500”错误。来自下面的日志。

PS C:\Users\windowsuser\OneDrive\Documents\GitHub\sample-app-myuni> 烧瓶运行 --port 5001

 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5001/ (Press CTRL+C to quit)
127.0.0.1 - - [27/Jul/2020 16:13:20] "GET /api/get_status HTTP/1.1" 200 -
127.0.0.1 - - [27/Jul/2020 16:13:51] "GET /api/code_grant_auth HTTP/1.1" 401 -
127.0.0.1 - - [27/Jul/2020 16:14:03] "OPTIONS /api/jwt_auth HTTP/1.1" 200 -
[2020-07-27 16:14:04,237] ERROR in app: Exception on /api/jwt_auth [POST]
Traceback (most recent call last):
  File "c:\python38\lib\site-packages\flask\app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
  File "c:\python38\lib\site-packages\flask\app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "c:\python38\lib\site-packages\flask_cors\extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "c:\python38\lib\site-packages\flask\app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "c:\python38\lib\site-packages\flask\_compat.py", line 39, in reraise
    raise value
  File "c:\python38\lib\site-packages\flask\app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "c:\python38\lib\site-packages\flask\app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "c:\python38\lib\site-packages\flask_cors\decorator.py", line 128, in wrapped_function
    resp = make_response(f(*args, **kwargs))
  File "C:\Users\windowsuser\OneDrive\Documents\GitHub\sample-app-myuni\app\api\auth.py", line 43, in jwt_auth
    DsClient.update_token()
  File "C:\Users\windowsuser\OneDrive\Documents\GitHub\sample-app-myuni\app\ds_client.py", line 36, in update_token
    client.request_jwt_user_token(DsConfig.client_id(),
  File "c:\python38\lib\site-packages\docusign_esign\client\api_client.py", line 679, in request_jwt_user_token
    raise ArgumentException("Private key not supplied or is invalid!")
  File "c:\python38\lib\site-packages\docusign_esign\client\api_exception.py", line 51, in __init__
    super(Exception).__init__(*args, **kwargs)
TypeError: super() argument 1 must be type, not str
127.0.0.1 - - [27/Jul/2020 16:14:04] "POST /api/jwt_auth HTTP/1.1" 500 -
127.0.0.1 - - [27/Jul/2020 16:18:14] "GET /api/code_grant_auth HTTP/1.1" 401 -

【问题讨论】:

  • Docusign 集成密钥设置和 .env 设置设置为 localhost:5001/api(HTTP 而不是 HTTPS),所以不认为这是这里的问题。想知道还有什么可能导致这种情况。

标签: python docusignapi


【解决方案1】:

集成密钥设置必须完全匹配 我认为您可以检查出现此错误的 URL,它首先具有您创建的 IK(GUID 值以 61C9 开头),然后具有 redirectUri。它是 URI 编码的,但您可以弄清楚并确保在 DocuSign 开发人员帐户的 IK 设置中设置了相同的完全匹配的 URI。 我觉得是前端的localhost:3000而不是后端的localhost:5001,可能下面有一个端点,检查确认再添加,等待30秒再试一次。

【讨论】:

  • 好的,我刚刚检查过了。看起来它显示的重定向 URL 与我在开发人员门户中设置的重定向 URL 不同。 account-d.docusign.com/oauth/…
  • 好的,很乐意为您提供帮助。如果你能够让它工作 - 你能把它标记为已回答吗?
  • 我们可能需要改进我们的文档
  • 我想我们快到了。我设法获得了一次许可提示。但它现在似乎已经被打破了。你能帮我检查一下IK是否正确吗? 61c9a7ec-84ec-4fa0-88b6-55bf9f0780a1。当我在 Flask 的 Powershell 窗口中收到一些“用户无权访问帐户”消息时。
  • 我添加了localhost:3000localhost:3000/callback,它触发了它,我只是在测试它需要继续工作的那个。
【解决方案2】:

好的,刚刚在 MySure 应用中对此进行了测试。添加以下内容将允许登录功能按预期工作。 http://localhost:5001/api/callback http://localhost:3000/回调 http://localhost:3000/

【讨论】:

  • 很想听听有关如何改进文档以帮助开发人员更快/更轻松地解决这个问题的建议。
  • 感谢 Inbar,可能对身份验证选项及其在 Web 应用程序中触发的方式有所了解(即“使用您的 DocuSign 开发人员帐户登录”)。关于预期工作流程的具体细节会有所帮助,对于像我这样刚刚熟悉 Docusign API 的新手来说,我仍在学习预期的工作流程和输出。
猜你喜欢
  • 2021-03-15
  • 1970-01-01
  • 2019-06-17
  • 2015-09-13
  • 1970-01-01
  • 2018-08-14
  • 2019-01-24
  • 2020-10-29
  • 1970-01-01
相关资源
最近更新 更多