当前位置: 首页 > 知识库问答 >
问题:

使用JWT成功获取访问令牌后PARTNER_AUTHENTICATION_FAILED

常培
2023-03-14

>

  • 我正在尝试在我的应用程序和DocuSign沙盒之间建立连接。

    我正在使用JWT授权。

    在这之前一切都很顺利。

    我已经下载了PHP的库"docuSign/eSign-Client"

    并使用这段代码:

            $recipientId = uniqid(5);
            $clientUserId =  uniqid(5);
    
            $document = new Document([
                'document_base64' => $base64FileContent,
                'name' => 'Application Form',
                'file_extension' => 'pdf',
                'document_id' => '1'
            ]);
    
            $signer = new Signer([
                'email' => $email,
                'name' => $name,
                'recipient_id' => $recipientId,
                'routing_order' => "1",
                'client_user_id' => $clientUserId,
            ]);
    
            $signHere = new SignHere([
                'document_id' => '1', 'page_number' => '3', 'recipient_id' => $recipientId,
                'tab_label' => 'SignHereTab', 'x_position' => '195', 'y_position' => '147'
            ]);
    
            $signer->setTabs(new Tabs(['sign_here_tabs' => [$signHere]]));
    
            $envelopeDefinition = new EnvelopeDefinition([
                'email_subject' => "Please sign this document",
                'documents' => [$document],
                'recipients' => new Recipients(['signers' => [$signer]]),
                'status' => "sent"
            ]);
    
            $config = new Configuration();
            $config->setHost('https://demo.docusign.net/restapi');
            $config->addDefaultHeader("Authorization", "Bearer " . $accessToken);
            $config->setAccessToken($accessToken);
    
            $apiClient = new ApiClient($config);
            $envelopeApi = new EnvelopesApi($apiClient);
    
            $results = $envelopeApi->createEnvelope($integrationKey, $envelopeDefinition);  
    

    结果是来自API的错误(400),信息如下:

    PARTNER_AUTHENTICATION_FAILED
    The specified Integrator Key was not found or is disabled. Invalid account specified for user.
    

    它说集成密钥是错误的,但在我使用此集成密钥成功生成访问令牌之前,只有几行代码。

    你知道出了什么问题吗?

    在JWT集成之前,我使用的是来自OAuth令牌生成器的不同集成密钥和访问令牌,它工作得很好(之前的密钥没有生成RSA)

    你们能帮我解决这个问题吗?

    如果有更多的信息可以帮助找到解决方案,请告诉我,我会更新我的帖子。

    谢谢你的帮助。

  • 共有1个答案

    刘浩思
    2023-03-14

    问题就在这方面

     $results = $envelopeApi->createEnvelope($integrationKey, $envelopeDefinition);
    

    createEnvelope方法的第一个参数应该是帐户ID,而不是integrator密钥。

    在您收到访问令牌后,您可以进行UserInfo调用并从中提取帐户ID。

     类似资料:
    • 我很难让Auth0以JWT格式返回访问令牌。我需要JWT格式的文件,以便使用javajwt库验证它们。 我正在使用Auth0登录,并使用获取访问令牌-我尝试将访问群体设置为我们的API标识符(在多个位置,包括lock auth参数和负载),但没有成功-返回访问令牌,但不是JWT。 或者,是否有用于验证“本机”Auth0访问令牌的Java库? 返回的代码用于POST到

    • 目前访问类型处于联机状态。当我需要访问驱动器上的文件/文件夹时,我将浏览器重定向到Google URL并获得访问代码: 一切运转良好!但我只需要第一次重定向。 当我谷歌时,在google Drive API文档中,我发现我可以通过浏览器重定向获得刷新令牌,并将其保存在数据库中。(换句话说,我可以使用脱机访问)。 而且每次当我需要从google drive读取数据时,我使用刷新令牌获得访问令牌,而无

    • 获取访问令牌的文档中的第一步是“将用户引导到我们的授权URL”。那到底是什么意思?没有提供链接或任何东西。它还说“公司名称、联系电子邮件和隐私政策URL是开始提交的必要条件。”我们的应用程序没有隐私政策...只是一个简单的标签提要。我不明白为什么有一个简单的标签提要那么复杂。 是否有一个等待时间来获得批准的应用程序..如果它得到批准...在获得访问令牌之前,我必须获得批准吗?这在任何地方都没有概述

    • 我的问题是如何使用OAuth2.0从刷新令牌中获取访问令牌。我还没有找到任何从刷新令牌中获取访问令牌的例子。 我参考了[Google+API参考],但他们使用HTTP方法提到了它。2请用C#提供一些使用Google+API提供的方法的例子。

    • 这是我的身份验证流程: 用户登录后收到两个令牌(具有过期时间的访问令牌和没有过期时间的刷新令牌) 对于每个用户,刷新令牌存储在数据库中名为refreshTokens的json列中(这是一个数组) 在客户端,访问令牌和刷新令牌都存储在本地存储器上 当需要验证用户时,如果访问令牌过期,将使用刷新令牌创建一个新的访问令牌,并将其发送回用户并保持用户登录 当用户注销时,数据库中存储的刷新令牌(在refre

    • 我在同意的情况下为我的应用程序手动/php sdk创建了docusignjwt访问令牌,并在restapi的代码中使用了该访问令牌。访问令牌的到期时间为1小时。如何在不征求同意的情况下一次又一次地更新DocuSign jwt访问令牌?或者如何延长访问令牌的到期时间?