我使用https://packagist.org/packages/ajimix/asana-api-php-class
整合Asana OAuth2当我在Asana上设置我的应用并使用内部网址时,例如https://intranet,我的重定向始终会失败
invalid_request: The `redirect_uri` parameter does not match a valid url for the application
但是,当我使用任何公共网址时,例如https://www.domainname.com,它就可以了。然后我可以将代码参数附加到我的内部页面。
有没有办法使用内部网址,即。一个不在公共DNS上的?
答案 0 :(得分:1)
我是Asana的开发者倡导者。直觉上,我并不认为您访问重定向应该有任何困难,因为它是重定向 - 我们根本不会尝试访问该网址,而是告诉您的浏览器重定向到该重定向包含访问Asana的授权的URL。如果您的浏览器在浏览时可以转到该URL,那么当您指示使用重定向时,您的浏览器可以转到该URL,对吧?所以为了以防万一,我调查了它。
当我们将您为OAuth应用提供的重定向网址与您在生成应用时注册的重定向网址进行比较时,会发回特定的错误代码 - 即您的凭据与位置白名单(长度为1,但是什么是单个白名单?白色值?)可以重定向到。如果您尝试进行身份验证时,您的网址不是该值,我们会返回该错误,并且在更深层次的错误检查中我们不会看到该特定错误(我们不会尝试ping您的重定向位置)
我认为这里可能发生的事情是,您已经在Asana上注册了OAuth应用,重定向到特定网址,当您在https://app.asana.com/-/oauth_authorize
端点上ping时,您就是这样做的。在redirect_uri
param中传递不同的URL。由于它与您注册应用的那个匹配,我们会发回该错误。 (这就是我们所说的"重定向到成功或错误的URI。这必须与应用程序设置中指定的重定向URL匹配。"描述OAuth工作流here时。
如果是这种情况,您可以更改应用的重定向网址,也可以注册使用Intranet网址的新OAuth应用,并使用该凭据通过Asana进行授权。
我希望这是根本原因,但如果情况似乎并非如此(如果在Asana注册的URL,并且您在尝试授权时确实传递了相同的URL)请务必告诉我们而且我会深入了解!
-Matt