Как войти в систему с помощью facebook в среде разработки, используя django social-auth?

Я использую социальную аутентификацию с моим веб-приложением django. Когда я захожу в /login/facebook в производственной среде, пользователь может войти в систему, используя свои данные 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 в моей среде разработки?


person sharataka    schedule 27.11.2012    source источник
comment
Определите собственный домен (я использую myapp.com) при создании приложения в Facebook, а затем добавьте его в свой файл /etc/hosts/, указывающий на ваш локальный хост 127.0.0.1 myapp.com. Это поможет   -  person omab    schedule 27.11.2012
comment
Я не знаю, как добавить домен в /etc/hosts/. Есть ли хорошая ссылка / учебник, который вы бы порекомендовали?   -  person sharataka    schedule 27.11.2012
comment
man hosts содержит всю основную информацию, это не очень сложно, вы добавляете новую строку в формате <IP ADDRESS> <DOMAIN>.   -  person omab    schedule 30.11.2012


Ответы (2)


Я только что увидел ответ на него, читая документацию Heroku/Facebook.

Для этого вы должны создать второе приложение и связать его с вашим локальным хостом, чтобы протестировать его локально.

Дополнительную информацию об этом можно найти здесь: https://devcenter.heroku.com/articles/facebook#1-creating-a-development-facebook-app

person Robyflc    schedule 27.11.2012
comment
Я настроил параметры приложения facebook для URL-адреса сайта: 127.0.0.1:8000. Домен приложения: (пусто). Я не уверен в домене приложения, потому что ничего не видел в ссылке об этом. Это правильно? Когда я пытаюсь сохранить домен приложения: 127.0.0.1:8000, я получаю сообщение об ошибке "Домен приложения": < href="http://127.0.0.1:8000/" rel="nofollow noreferrer">127.0.0.1:8000 не должен содержать информацию о протоколе. Домены приложений: 127.0.0.1:8000 не является допустимым доменом. - person sharataka; 27.11.2012
comment
Я только что изменил свое приложение на 127.0.0.1:8000, и оно отлично работает (не работает без http) - person Robyflc; 28.11.2012

Самое простое решение, которое я нашел, — изменить файл 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

person Leo    schedule 11.04.2015