簡體   English   中英

social-auth-app-django facebook backend state with redirect_uri

[英]social-auth-app-django facebook backend state with redirect_uri

我知道我的問題聽起來像是重復的,但我在沒有找到任何解決方案的情況下到處尋找。

我正在為我的django webapp實現社交登錄。 到目前為止谷歌,推特和雅虎登錄已按預期工作。 但Facebook總是給出以下錯誤:

網址被阻止:此重定向失敗,因為重定向URI未在應用的客戶端OAuth設置中列入白名單。 確保客戶端和Web OAuth登錄已啟用,並將所有應用程序域添加為有效的OAuth重定向URI。

經過一番挖掘,我得學習如何正確設置我的Facebook登錄:下面的Facebook應用程序設置

App Domains設置為domain.ext

Site URL設置為https://www.domain.ext/

Valid OAuth Redirect URIs設置為https://domain.ext/social/complete/facebook/

我還查看了重定向url(如下所示),發現它包含一個state變量state=kMQH3TdKSdF8oYGGx7Xri4KgFaEQ9OyU 完整網址如下

https://www.facebook.com/v2.9/dialog/oauth?client_id=977674249054153&redirect_uri=https%3A%2F%2Fwww.domain.ext%2Fsocial%2Fcomplete%2Ffacebook%2F&state=kMQH3TdKSdF8oYGGx7Xri4KgFaEQ9OyU&return_scopes=true&scope=email%2Cpublic_profile

我的django應用程序上的facebook登錄URL是{% url 'social:begin' 'facebook' %} 'social_core.backends.facebook.FacebookOAuth2' {% url 'social:begin' 'facebook' %}我在AUTHENTICATION_BACKENDS'social_core.backends.facebook.FacebookOAuth2'

我搜索並發現social-core github頁面上已經解決了這樣的問題。 它說從v1.7.0開始,這行REDIRECT_STATE = False已被添加到facebook后端。 我挖了源代碼,發現是這樣的。 但我的應用程序的URL繼續發送狀態變量,我不知道為什么會這樣。 請其他人遇到這種奇怪的行為,如果是的話,你是怎么去解決它的?

你試過django-allauth嗎? 我發現這是一個更好的解決方案。 它為您提供內置支持的許多提供商和自定義提供商,為您提供第三方提供商集成。

我花了好幾個小時來處理這個問題,但事實證明我只需要這樣做Valid OAuth Redirect URIs設置為https://www.domain.ext/social/complete/facebook/

請注意www.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM