social-auth-app-django Состояние бэкенда в Facebook с помощью redirect_uri

Я знаю, что мой вопрос звучит как дубликат, но я искал везде, не находя никакого решения.

Я работаю над реализацией социальных логинов для моего веб-приложения django. До сих пор логины Google, Twitter и Yahoo работали, как и ожидалось. Но фейсбук всегда выдает ошибку ниже:

URL заблокирован: перенаправление не выполнено, поскольку URI перенаправления не внесен в белый список в настройках OAuth клиента приложения. Убедитесь, что клиентский и веб-входы OAuth включены, и добавьте все домены приложения в качестве допустимых URI перенаправления OAuth.

После некоторых копаний я узнал, как правильно настроить мою учетную запись на 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, Полный URL ниже

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

Мой логин в Facebook на моем приложении django {% url 'social:begin' 'facebook' %} и у меня есть это 'social_core.backends.facebook.FacebookOAuth2' в AUTHENTICATION_BACKENDS

Я искал и обнаружил, что есть такая проблема уже на social-core страница github, которая была решена. Это говорит о том, что с v1.7.0 эта строка REDIRECT_STATE = False был добавлен в бэкэнд Facebook. Я копался в исходном коде и обнаружил, что это так. Но URL моего приложения продолжает посылать переменную состояния, и я понятия не имею, почему это так. Пожалуйста, кто-нибудь еще сталкивался с этим странным поведением, и если да, то как вы справились с этим?

2 ответа

Я потратил часы на эту проблему, но оказалось, что мне нужно было только сделать это Valid OAuth Redirect URIs установлен в https://www.domain.ext/social/complete/facebook/

Обратите внимание www.

Вы пробовали Джанго Аллаута? Я считаю, что это гораздо лучшее решение. Он заботится о интеграции сторонних поставщиков для вас со встроенной поддержкой многих поставщиков и пользовательских поставщиков.

Другие вопросы по тегам