HybridAuth在本地网络中工作,但在我的网络之外访问时不工作


HybridAuth working within local network, but not when accessed outside of my network

我已经在我的Web服务器上设置了HybridAuth。我有一个基本的html页面,显示谷歌、脸书或推特的3个登录选项。为了在我的家用电脑上进行测试,我将config.php文件设置为:

"base_url" => "http://my.local.ip.address/hybridauth-2.1.2/hybridauth/index.php",

到目前为止,有了这个设置,选择使用Twitter登录选项确实有效,我可以从用户那里获取一些基本的个人资料信息。然而,Facebook返回以下消息:

  • 应用程序配置不允许给定的URL。:应用程序的设置不允许使用一个或多个给定的URL。它必须与网站URL或Canvas URL匹配,或者域必须是应用程序某个域的子域

当尝试谷歌时,它会返回以下信息:

-redirect_uri的参数值无效:不允许使用原始IP地址:http://my.local.ip.address/hybridauth-2.1.2/hybridauth/?hauth.done=Google

如上所述,"my.local.ip.address"是我实际的本地ip地址,但我不得不在这里更改它。然而,当我更改config.php以获得正常使用所需的内容时:

"base_url" => "http://myFQDN.com/hybridauth-2.1.2/hybridauth/index.php",

然后我打开手机(而不是本地网络),无论我选择什么选项,它都会重新加载基本html页面。

任何帮助或建议都将非常好。

注意:端口80被我的ISP阻止,因此,我让它从我的注册器重定向到另一个端口,然后在我的路由器内转发。如果可能的话,也请告诉我此外,当我只是建立一个标准的.html页面时,一切都很好。

感谢

我不认为大多数OAuth2提供程序会接受不是来自配置的回调url的答案。因此,使用寄存器进行重定向很可能会失败。

相反,请尝试将回调配置为:http://www.yourdomain.com:openPort/hybridauth-2.1.2/hybridauth/index.php

其中openPort是ISP不会阻止的端口号。然后在路由器中,您可以使端口转发openPort->80,或者您可以启动web服务器到openPort并确保路由器没有阻止请求。