GTW已经更新了他们的API,我正在重构一些代码以适应这些必需的更改,但我在身份验证令牌部分遇到了一些困难。
根据他们的指示(https://goto-developer.logmeininc.com/how-get-access-token-and-organizer-key):
1-请求授权码代表GoTo产品用户创建授权请求。它会将它们发送到产品登录页面。
在My Apps页面中,打开您的应用程序并复制Consumer密钥值。将Consumer密钥值插入到以下URL中以替换{Consumer erKey}:https://api.getgo.com/oauth/v2/authorize?client_id={Consumer erKey}&Response_type=code产品账户持有人发送该URL。他们被定向到产品的登录页面。如果他们尚未登录,则使用其凭据登录,并且必须单击允许才能访问开发人员应用程序。然后,用户被自动重定向到您在开发人员中心应用程序中定义的重定向URL。重定向URI(在浏览器地址栏中)添加了一个响应键。
重要提示:您可能会在页面上看到错误,如404 Not Found。这不是问题。查看浏览器中的URL。它包含下一步所需的ResponseKey。它看起来类似于:
http://example.com/oauthreturn/?code={响应密钥}您可以包括可选的重定向URI和/或状态参数。有关详细信息,请参阅下面的可选部分:添加重定向URI。
这里最有趣的是这句话:
重要提示:您可能会在页面上看到错误,如404 Not Found。这不是问题。查看浏览器中的URL。它包含下一步所需的ResponseKey。它看起来类似于:
如果我在浏览器中这样做,它实际上工作得很好……我提供了适当的凭据,我被重定向到一个相当于错误页面的页面(返回了头代码404),但URL包含auth令牌。
我试图使用cURL检索该auth令牌,但实际上无法在cURL请求返回的任何数据中获得重定向的URL。
2条答案
按热度按时间sg2wtvxw1#
如果您更愿意自己处理身份验证过程,请查看此repo中的实现:
https://github.com/cleverreach/citrix
由于该包处理整个过程,我建议按原样使用它,但如果您更喜欢实现自己的,它仍然是一个很好的例子和有用的起点。
v2g6jxz62#
我刚刚经历了整个过程,但它应该是这样运作的。我知道Goto Connect上提供的API文档有点令人困惑!
更好的文档可以在here找到
该工作流包括三个主要步骤:
1.**使用认证码授权流程初始化认证流以获取授权码。**在这里,您将使用您的客户端ID调用认证API,您将被定向到一个浏览器窗口,在那里您将提供认证,并使用OAuth返回
{AUTHORIZATION CODE}
。res.getheaders()
应返回如下所示的Headers对象(要访问以完成OAuth的URL位于Location
标题中):此部分不是程序性的,需要用户在浏览器窗口中进行干预。完成身份验证流程后,您将被定向到您的
{REDIRECT URI}
以及作为参数标记的新授权码:https://yourredirecturi.com/?CODE=XXXXXXXXXXXXX
1.**使用相同的接口,但传递不同的参数(这里的
auth
编码为Base64(base64("{CLIENT_ID}:{CLIENT_SECRET}")
)**使用相同的接口交换访问令牌来获取初始访问令牌:这应该返回
access_token
和refresh_token
1.**定期检索新的刷新令牌。**一旦建立了身份验证,您可以通过调用相同的API,但通过将
grant_type
参数从authorization_code
更改为refresh_token
,以编程方式请求刷新令牌(我每天都会使用Python脚本执行此操作最终想法
为了简单起见,我手动完成了步骤1和步骤2。我每晚使用Chron作业在Google Cloud功能上以服务的形式运行步骤3,并将它们存储在
Google Secrets Manager
中,以确保我拥有最新的access_token
和refresh_token
。希望这能帮上忙!