";给定的URL在客户端OAuth设置中没有被列入白名单;在测试主机上登录Facebook


"Given URL is not whitelisted in Client OAuth Settings" on Facebook login at a test host

我正在使用Facebook PHP SDK来实现与Facebook的登录。我想先在本地测试一下。我创建了一个测试应用程序,我尝试了很多东西,但仍然不适合我。

在我的本地中,我配置了一个apache虚拟主机,这样我就可以使用以下url访问我的本地web应用程序:http://www.myapplocal.com

以下是我在登录facebook后得到的错误:

Given URL is not whitelisted in Client OAuth Settings: This redirect failed because the redirect URI is not whitelisted in the app’s Client OAuth Settings. Make sure Client and Web OAuth Login are on and add all your app domains as Valid OAuth Redirect URIs.

下面是我在oauth设置部分的内容:

Client OAuth Login: yes
Web OAuth Login: yes
Force Web OAuth Reauthentication: no
Embedded Browser OAuth Login: no
Valid OAuth redirect URIs: http://www.myapplocal.com/index.php/facebook-login-callback
Login from Devices: no

这是我在"基本"部分中的内容(https://developers.facebook.com/apps/appid/settings/basic/):

Namespace:
App domains: www.myapplocal.com
Site Url: http://www.myapplocal.com/

在实现了用谷歌登录和用推特登录后,我不认为用脸书登录会对URL进行不同的处理。问题是,对于facebook来说,如果你的网站既可以使用www也可以不使用www(http://example.com,http://www.example.com),您必须在应用程序设置中同时输入(http://www.example.com/facebook-callback和http://example.com/facebook-callback)

我还发现,如果您的网站使用SSL证书,则必须在应用程序的"有效OAuth重定向URI"中输入http和https。