如何配置DocuSign视图请求,要求用户登录后再签署文档?
解决方案:强制DocuSign签署者必须登录账号
要实现签署前必须登录DocuSign账号的需求,你需要在Recipient View请求中添加强制登录配置,同时确保认证方式设置正确。之前的尝试只修改了authenticationMethod,但缺少了关键的强制登录开关,所以无法生效。
核心修改步骤
开启强制登录开关
在RecipientViewRequest中设置requireIdLookup: true,这个参数会强制用户必须通过DocuSign账号登录才能进入签署页面,而不是允许访客模式签署。设置正确的认证方式
将authenticationMethod设置为"email"或"username"(对应DocuSign账号的登录凭据),避免设置为"none"或重复赋值。可选:绑定指定DocuSign用户
如果希望签署者必须使用已存在的特定DocuSign账号(禁止注册新账号),需要在创建信封的signer对象中添加userId参数(该值为用户在DocuSign平台的唯一用户ID)。
修改后的代码示例
视图请求部分(核心修改)
recipientView.controller = async (args) => { const viewRequest = new docusign.RecipientViewRequest(); viewRequest.returnUrl = args.dsReturnUrl; // 关键:开启强制登录,必须登录DocuSign账号才能签署 viewRequest.requireIdLookup = true; // 设置认证方式为邮箱(匹配DocuSign账号登录) viewRequest.authenticationMethod = 'email'; viewRequest.email = args.signerEmail; viewRequest.userName = args.signerName; viewRequest.clientUserId = args.signerClientId; return await recipientView.worker(viewRequest, args); }
可选:绑定特定DocuSign用户(信封创建函数)
如果需要限制只能由指定的DocuSign用户签署,修改signer的创建代码:
const signer1 = docusign.Signer.constructFromObject({ email: args.htmlArgs.submitterEmail, name: args.htmlArgs.submitterName, clientUserId: 1, recipientId: 1, routingOrder: 1, // 添加用户在DocuSign平台的唯一ID,确保必须用该账号登录 userId: args.submitterDsUserId });
注意事项
- 签署者的邮箱必须已经注册了DocuSign账号,否则系统会引导用户先完成注册流程再登录签署。
- 如果不需要绑定特定用户,仅开启
requireIdLookup: true即可,此时用户可以使用任何已有的DocuSign账号登录(只要邮箱匹配签署者邮箱)。
内容的提问来源于stack exchange,提问作者Cosmic
相关产品推荐
相关产品推荐

