让我首先说,我已经寻找这个问题的答案很长一段时间了……
我试图设置Facebook OAuth与我的应用程序,这是在我的机器上本地开发。Facebook授权的一切都很完美,直到我从使用localhost转移到另一个域名(仍然是我机器的本地域名)。现在我得到如下错误。
不能加载URL:这个URL的域不包括在应用程序的
域。要加载此URL,请添加所有域和子域
在你的应用程序设置的应用程序域字段。
我的hosts文件包含127.0.0.1 domain.dev(完美工作)
我的重定向在我的应用程序(使用Socialite)是http://domain.dev/auth/facebook/callback
在我的Facebook应用程序设置…
我的应用域名是Domain .dev
我的网站网址是http://domain.dev/
我的有效OAuth重定向uri是
http://domain.dev/auth/facebook/callback
出现错误消息时的URL是..
https://www.facebook.com/v2.5/dialog/oauth?client_id=XXXXXXXXXXXXXXX&redirect_uri=http%3A%2F%2Fdomain.dev%2Fauth%2Ffacebook%2Fcallback&scope=email&response_type=code&state=0ztcKhmWwFLtj72TWE8uOKTcf65JmePtG95MZLDD
我不知道问题出在哪里。
屏幕截图1
屏幕截图2
截至2017-10年。
解决了我的问题。
目前FB呈现这个惊喜。
…app的客户端OAuth设置。确保客户端和Web OAuth登录是在…
要调整的设置位于https://developers.facebook.com/apps/[your_app_itentifier]/fb-login/。
后面的斜杠很重要。它们必须与你的应用程序代码和FB管理设置相匹配。所以这是在你的代码中的某个地方的配置(见下面如何获得一个开发应用程序的任何域名):
{
callbackURL: `http://my_local_app.com:3000/callback/`, // trailing slash
}
这里
要获取本地Windows机器上应用程序的任何域名,请编辑主机文件。自定义名称可以很好地消除所有这些localhost:8080、0.0.0.0:30303、127.0.0.0:8000等等。因为一些第三方服务,如FB,有时不能让你使用127.0.0.0的名称。
在Windows 10上的hosts文件如下:
C:\Windows\System32\drivers\etc\hosts
备份初始文件,创建一个不同名称的副本(不能在本机Windows CMD。我使用Git for Windows,它有很多Unix命令)
$ cp hosts hosts.bak
在主机中添加这个
127.0.0.1 myfbapp.com # you can access it in a browser http://myfbapp.com:3000
127.0.0.1 www.myotherapp.io # In a browser http://www.myotherapp.io:2020
为了摆脱端口部分:3000设置NGINX为例。
In the App domain section, you are writing your app domain but you also need to add your login domain i.e. the name of html page where you ask user to login. In my case, I was testing it on localhost and the login route was localhost/login, If I only put http://localhost.com in App domain section, I get this error. But after adding http://localhost/login.com, the error was fixed.
and also the App settings has changed in newer version of SDK, in which there is no option for OAuth redirect route. You've to assign the redirect route directly from server side, after successfully getting OAuth token.