social-auth-app-django Состояние бэкенда в Facebook с помощью redirect_uri - PullRequest
0 голосов
/ 16 мая 2018

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

Я работаю над реализацией социальных логинов для моего веб-приложения 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 ]

0 голосов
/ 16 мая 2018

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

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

0 голосов
/ 16 мая 2018

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

...