【问题标题】:How to connect to QBO API (oauth) via a Vagrant box?如何通过 Vagrant box 连接到 QBO API (oauth)?
【发布时间】:2014-12-03 15:40:52
【问题描述】:

我正在尝试通过 oauth 从 Vagrant 框(Laravel Homestead)连接到 Quickbooks Online API,但是,单击“连接我”后,会打开一个新窗口,重定向到 myhost.com/oauth.php 和返回一个空白的白页。通常,第二个窗口应该关闭并重定向回 myhost.com,并显示“您已连接到 Quickbooks!”消息。

这在我的服务器上运行良好。我试图弄清楚配置有什么不同,但没有成功。

我的/etc/hosts 文件显示:

192.168.10.10   www.rugapp.com

192.168.10.10  homestead  # VAGRANT: fea709db2e32a39618e4b4c9f1fe1026 (default) / 88840d50-7152-4760-9be1-5f68ce5fde1d

如上图,我已经安装了vagrant插件hostsupdater,运行了两条命令:

config.vm.network :private_network, ip: "192.168.10.10"

config.vm.hostname = "www.rugap.com"

是否可以通过 Vagrant box 连接到 Quickbooks Online?

【问题讨论】:

    标签: laravel oauth vagrant quickbooks-online


    【解决方案1】:

    也许身份验证需要一个可公开访问的 URL,并且主机名似乎映射到本地 IP(身份验证服务无法访问)。您可以尝试使用ngrok 将您的应用程序通过隧道公开访问,然后查看它是否有效(您将获得类似http://mysubdomain.ngrok.com 的公开网址)。


    我没有尝试从 Vagrant 框中运行 ngrok,但以下方法可能有效:

    1. SSH 进入你的流浪机器
    2. 使用他们网站上的链接下载 (wget) ngrok 并解压缩,或install it through npm
    3. 运行ngrok 80(这将转发来自端口80的流量,您可以使用您需要的任何端口)。这将启动隧道并提供转发 URL。

    【讨论】:

    • 我确实配置了 ngrok 来隧道我的应用程序。然而,确切的问题仍然存在。它一定是别的东西。谢谢。
    • ngrok 为给定端口提供隧道流量,它不会完全取代您的网络服务器,它只是转发它的响应,以便可以公开提供服务。我已经用一些说明更新了我的答案。
    • 对于 vagrant,鉴于问题中显示的我的 IP,我必须运行 ngrok 192.168.10.10:80 并且效果很好。我的应用程序通过隧道传输到公共地址。然而,原来的问题仍然存在。我的服务器和本地配置之间肯定有其他区别。
    • 如果我正确阅读了他们的oAuth Documentation,他们提到了一个参数 grantUrl 并且部分描述为 “确保这与 Host Name Domain 字段在您应用的设置页面中的Development 标签"。仅当请求来自配置的域时,身份验证是否可能有效? (这可以解释为什么它可以在您的服务器而不是其他主机名上工作)。
    • 这仅在您的应用处于生产状态时才相关。我在 (Domain.Here) 中保留了默认值,它仍然适用于我的服务器。我非常感谢您对此进行调查。现在,我将坚持只在我的服务器上进行开发。再次感谢。
    猜你喜欢
    • 2013-11-21
    • 1970-01-01
    • 2017-09-22
    • 2017-07-06
    • 2011-11-05
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多