2017-10-14 96 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

其實它工作得很好。也許他們最近改變了一些東西。 –

相關問題