0

我正在使用https://packagist.org/packages/ajimix/asana-api-php-class集成 Asana OAuth2

当我在 Asana 上设置我的应用程序并使用内部 URL 时,例如https://intranet,我的重定向总是失败

invalid_request: The `redirect_uri` parameter does not match a valid url for the application

但是,当我使用任何公共网址(例如https://www.domainname.com )时,它可以工作。然后我可以将代码参数附加到我的内部页面。

有没有办法使用内部网址,即。一个不在公共 DNS 上的?

4

1 回答 1

1

我是 Asana 的开发者倡导者。直觉上,我不认为你应该仅仅因为它是一个重定向而访问重定向有任何困难——我们根本不尝试访问 URL,而是告诉你的浏览器重定向到包含访问 Asana 授权的 URL . 如果您的浏览器在您浏览时可以转到该网址,那么您的浏览器可以在收到重定向指令时转到该网址,对吗?所以我调查了一下以防万一。

当我们将您为 OAuth 应用程序提供的重定向 URL 与您在生成应用程序时注册的 URL 进行比较时,该特定错误代码将被发回 - 即将您的凭据与位置白名单(长度为 1,但什么是单一的)进行比较白名单?一个白值?)可以重定向到。如果您在尝试进行身份验证时您的 URL 不是该值,我们会返回该错误,并且看起来该特定错误与更深层次的错误检查无关(我们不会尝试 ping 您的重定向位置)。

我认为这里可能发生的情况是,您已在 Asana 上将 OAuth 应用程序注册为重定向到特定 URL,并且当您 pinghttps://app.asana.com/-/oauth_authorize端点时,您在redirect_uri参数中传递了不同的 URL。由于它与您注册应用的那个不匹配,我们会发回该错误。(当我们在此处描述 OAuth 工作流时说“成功或错误时重定向到的 URI。这必须与应用程序设置中指定的重定向 URL 匹配。”时,这就是我们的意思。

如果是这种情况,您可以更改应用程序的重定向 URL,或者注册一个使用 Intranet URL 的新 OAuth 应用程序,并使用该凭据通过 Asana 进行授权。

我希望这是根本原因,但如果情况并非如此(如果在 Asana 注册的 URL 并且您在尝试授权时确实传递了同一个 URL),请务必让我们知道,我会潜水更深!

-马特

于 2016-11-01T23:18:38.687 回答