2012-11-27 46 views
6

我正在使用社交授權與我的Django網絡應用程序。當我在生產環境中進入/ login/facebook時,用戶可以使用他們的facebook數據登錄。然而,在我的開發環境,當我訪問如何使用django social-auth在開發環境中使用Facebook進行登錄?

http://localhost:8000/login/facebook/, 

我得到一個錯誤說

An error occurred. Please try again later. 

API Error Code: 191 
API Error Description: The specified URL is not owned by the application 
Error Message: Invalid redirect_uri: Given URL is not allowed by the Application configuration. 

我相信這是因爲域爲localhost:8000。我如何解決這個問題,以便我可以在我的開發環境中使用Facebook登錄?

+1

定義自定義域(我用myapp.com)創建了Facebook應用程序時,然後將其添加到你的'/ etc/hosts文件/文件'指向本地主機'127.0。 0.1 myapp.com'。這將做詭計 – omab

+0

我不熟悉如何將域添加到/ etc/hosts /。你會推薦一個好的鏈接/教程嗎? – sharataka

+0

'男主人'擁有所有基本信息,這不是很複雜,你添加一個格式爲''的新行。 – omab

回答

2

我在閱讀Heroku/Facebook文檔時剛剛看到了答案。

爲此,您必須創建第二個應用程序並將其鏈接到本地​​主機以便在本地進行測試。

你可以在這裏找到更多關於它:https://devcenter.heroku.com/articles/facebook#1-creating-a-development-facebook-app

+0

我將facebook應用程序設置配置爲網站網址:http://127.0.0.1:8000/。應用程序域:(空)。我不太確定應用程序域,因爲我沒有看到鏈接中的任何內容。那是對的嗎?當我嘗試保存App Domain:http://127.0.0.1:8000/時,出現「App Domains:http://127.0.0.1:8000/不應包含協議信息」錯誤 App Domains:http: //127.0.0.1:8000/不是有效的域。「 – sharataka

+0

我剛剛將我的一個應用程序更改爲http://127.0.0.1:8000,它工作得很好(沒有http就無法工作) – Robyflc

2

,我發現最簡單的辦法是修改hosts文件來誘騙Facebook的:

1 /編輯hosts文件

  • 開放/ etc/hosts
  • 並在最後加上這一行:127.0.0.1 dev.mydomain.com

2 /在Facebook的開發者控制檯(https://developers.facebook.com/apps/ *********)

  • 選擇 「測試應用程序」> 「創建一個測試應用程序」
  • 在 「設置」> 「基本」 > 將域名(dev.mydomain.com)添加到「應用域名」字段中。

完成!

CF: https://groups.google.com/forum/#!topic/django-social-auth/gB1D8ikgUwM

相關問題