任何路线都要求您作为DocuSign用户进行身份验证才能使用它。使用标准服务集成流程,您可以引导用户通过docusign的/oauth/auth
流程,使用返回的代码通过/oauth/token
获取访问令牌,然后在/oauth/userinfo
上使用该令牌获取用户的权限然后,您可以在JWT中签名并使用该ID。
DocuSign不允许用户通过oauth UI获得他们的同意,而是允许组织管理员为应用程序中的每个人预先授权应用程序。无需通过oauth流程发送组织成员。大。
但是,一旦采取此操作,我的应用程序如何代表任何用户发出请求并不清楚,因为为您提供用户ID的/oauth/userinfo
路由需要通过传递获得的oauth代码用户通过DocuSign的oauth浏览器UI。
更具体地说:如果foo.com的DocuSign组织的管理员授权我的应用程序,并且bob@foo.com开始使用我的应用程序,我如何获得bob@foo.com的用户ID来创建JWT?
答案 0 :(得分:0)
当你说“bob@foo.com开始使用我的应用程序”时,究竟是什么意思?
案例1 :Bob正在与您的应用程序进行交互。在这种情况下,您应该使用用户应用程序OAuth流程(例如Authorization Code Grant)来启用他登录。
如果您的应用需要稍后代表Bob行动,那么请存储Bob的用户ID,以便以后使用JWT授权。
案例2 :您的应用在后台运行(无需人工干预)。在某些时候,你的应用程序需要通过模仿他开始为Bob做事。你只拥有他的电子邮件地址。
如果此时间到来并且您的应用与Bob没有互动,那么是的,您需要事先作为管理员访问(在Bob的帐户中),以便您可以从他的电子邮件中查找Bob的user_id。
此第二个帐户将是您应用的“管理员用户帐户”。该帐户需要管理员权限才能查找用户的信息。安装应用后,您的应用可以访问此管理员帐户。
使用Users:list API调用。请记住对电子邮件地址进行编码。
示例:
GET call: /v2/accounts/{accountId}/users?email=larry%2Buser%40foo.com
Re:user_id生命周期我有理由相信,对于给定的帐户用户(在DocuSign上成为帐户成员的人),user_id guid不会更改。我会检查以确保。