2017-10-14 97 views
0

我正在使用Django和python-social-auth开发Web应用程序。我希望用户使用Facebook登录。Facebook Social Auth登录:无法加载URL:该网址的域名未包含在应用程序的域名中

我有这个在我的蟒蛇设置:

SOCIAL_AUTH_FACEBOOK_KEY = '...' 
SOCIAL_AUTH_FACEBOOK_SECRET = '...' 
SOCIAL_AUTH_FACEBOOK_SCOPE = ['email'] 

当我的用户输入的Facebook页面,他们应该提供凭据,他们看到这样的错误:为开发人员仪表板

Can't Load URL: The domain of this URL isn't included in the app's domains. 
To be able to load this URL, add all domains and subdomains of your 
app to the App Domains field in your app settings. 

在Facebook中我添加了“Facebook登录”产品并添加了重定向网址:

http://localhost:8000/complete/facebook/ 

在设置中,网站网站URL设置为:http://localhost:8000/,并且应用程序域设置为localhost

我在做什么错?

BTW这是Facebook的页面打开时,我的用户看到的网址:

https://www.facebook.com/v2.9/dialog/oauth?scope=email&state=HSfkstGUR5028DMhUzfWOSgo6fpPx29E&redirect_uri=http%3A%2F%2Flocalhost%3A8000%2Fcomplete%2Ffacebook%2F%3Fredirect_state%3DHSfkstGUR5028DMhUzfWOSgo6fpPx29E&client_id=...&return_scopes=true 

回答

2

禁用您的Facebook登录的应用程序设置中的“对重定向URI的使用严格的模式”。

OR

注意生成的URL的参数redirect_uri=http%3A%2F%2Flocalhost%3A8000%2Fcomplete%2Ffacebook%2F%3Fredirect_state%3DHSfkstGUR5028DMhUzfWOSgo6fpPx29E

对于一些无法解释的原因,Facebook要求有效的OAuth重定向URIs设置与重定向url完全相同。

因此,请使用类似https://meyerweb.com/eric/tools/dencoder/的工具,解码网址并将有效的OAuth重定向URI设置为完整的网址。即:

http://localhost:8000/complete/facebook/redirect_state=HSfkstGUR5028DMhUzfWOSgo6fpPA59E

0

Facebook并没有在应用程序设置或redirect_uri参数Redirect URI场喜欢localhost。要解决它只是设置在现场的东西(我用http://myapp.com:8000,然后添加条目127.0.0.1 myapp.com/etc/hosts,并通过新的URL(http://myapp.com:8000)来访问应用程序。

+0

其实它工作得很好。也许他们最近改变了一些东西。 –

相关问题