首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Autodek Forge教程

Autodek Forge教程
EN

Stack Overflow用户
提问于 2021-04-07 02:19:07
回答 1查看 54关注 0票数 0

我一直在学习Autodesk Forge示例应用程序教程。

WHen我点击按钮连接到我的帐户,我得到这个错误;

代码语言:javascript
复制
{"developerMessage":"The required parameter(s) redirect_uri not present in the request","errorCode":"AUTH-008","more info":"https://forge.autodesk.com/en/docs/oauth/v2/developers_guide/error_handling/"}
EN

回答 1

Stack Overflow用户

发布于 2021-04-07 19:52:25

如果你得到这个错误,你可能正在尝试一个3条腿的oauth流。这意味着您没有在请求中提供回调url。由于您没有说您一直在使用哪个教程,让我向您指出两个来源--伪造文档教程here或学习伪造教程here

在这两种情况下,在Forge portal上的应用程序页面中定义回调url都很重要-如果您使用的是本地计算机,它应该类似于http://localhost:3000/mycallback。learnforge材质告诉您将其定义为(请参见here):

代码语言:javascript
复制
http://localhost:3000/api/forge/callback/oauth

文档教程中提到要在哪里使用

代码语言:javascript
复制
http://sampleapp.com/oauth/callback

但在这里,他们假设您拥有域sampleapp.com,这可能不是真的。在本地机器上开发when服务器时,您需要用自己的域或localhost:port替换sampleapp.com。注当您要在服务器上运行代码时,使用真正的域与本地主机,并更新应用程序页面和代码以使用相同的定义,这一点很重要。我通常设置3个应用程序(dev: with localhost:3001,staging: with myapp-staging.autod3sk.net,and production: with myapp.autod3sk.net) -这是为了避免必须一直编辑密钥,并使应用程序部署变得更容易。

现在已经设置了应用程序,您需要在请求中使用该URL,如Oauth API中所述。但所有参数都应该是URL编码的,否则/字符将被服务器误解。未能在请求中传递正确且已编码的URL参数将导致您看到的错误。

下面是一个示例:

代码语言:javascript
复制
https://developer.api.autodesk.com/authentication/v1/authorize \
 ?response_type=code \
 &client_id=MYCLIENT_ID \
 &redirect_uri=MY_ENCODE_CALLBACKURL \
 &scope=REQUIRED_SCOPES

替换占位符后,它应该如下所示

代码语言:javascript
复制
https://developer.api.autodesk.com/authentication/v1/authorize\
?response_type=code\
&client_id=oz9f...k2d\
&redirect_uri=http%3a%2f%2flocalhost%3a3000%2fapi%2fforge%2fcallback%2foauth\
&scope=data%3aread

将其复制到您的浏览器中,在登录和同意页面之后,该服务应返回到您的浏览器,并显示如下URL:

代码语言:javascript
复制
http://localhost:3000/api/forge/callback/oauth?code=wroM1vFA4E-Aj241-quh_LVjm7UldawnNgYEHQ8I

因为我们还没有服务器,所以浏览器会出错,但您可以清楚地看到返回给您的URL和代码。您知道需要将该代码复制到另一个请求中才能获得最终令牌。在这里,我们将使用curl,但理想情况下,请求和回调都应该由您的服务器代码处理。

代码语言:javascript
复制
curl 'https://developer.api.autodesk.com/authentication/v1/gettoken' \
  -X 'POST' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'client_id=oz9f...k2d' \
  -d 'client_secret=eUr...Q1e' \
  -d 'grant_type=authorization_code' \
  -d 'code=wroM1vFA4E-Aj241-quh_LVjm7UldawnNgYEHQ8I' \
  -d 'redirect_uri=http://localhost:3000/api/forge/callback/oauth'

理想情况下,所有这些都需要在您的服务器代码中完成,就像learnforge教程教您做的那样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66974325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档