Подключитесь к Facebook в Django Rest Framework + Django Social Auth

Я использую Django Social Auth для связи с проблемой Facebook, и он отлично работает. Я разработал API для своего приложения Django с помощью Django Rest Framework. Но меня смущает использование Django Social Auth с Django Rest Framework для устройств iOS.

Я выполнил поиск 1, 2, 3 и 4, но обычно они работают с Angular.js. Я не знаком с разработкой под iOS.

  • В чем разница между подключением facebook со спа и мобильным устройством? * Как я могу использовать эти пакеты вместе?
  • Могу ли я перейти с django-social-auth на python-social-auth?

person TheNone    schedule 02.04.2014    source источник
comment
Это общий шаблон при реализации аутентификации. на API с помощью python-social-auth. Аналогичный подход можно реализовать с помощью django-social-auth.   -  person omab    schedule 03.04.2014
comment
возможный дубликат аутентификации токена oauth2 с использованием django-oauth -toolkit и python-social-auth   -  person Kevin Brown    schedule 25.08.2015


Ответы (3)


Теперь вы можете аутентифицировать своих пользователей с помощью вашей django-rest-framework с помощью токенов-носителей / токенов доступа третьих лиц из любого бэкэнда python-social-auth (Facebook, Google, Github и т. Д.), Используя эту библиотеку https://github.com/PhilipGarnero/django-rest-framework-social-oauth2

Этот модуль обеспечивает поддержку python-social-auth и oauth2 для django-rest-framework. Таким образом, это сэкономит вам много времени на настройку того, что необходимо для вашего DRF с социальной авторизацией и обеспечения безопасности OAuth2.

person Hugo Sequeira    schedule 16.04.2015
comment
Как Django-rest-framework-social-oauth2 сравнивается с Django OAuth Toolkit, рекомендованным DRF? django-rest-framework.org/api-guide / authentication / - person Harry Moreno; 09.01.2019

Я думаю, что вы можете добиться этого, используя структуру отдыха django, django-rest-auth и allauth. Эти трое прекрасно работают вместе.

  • Вы уже знакомы с django rest framework.
  • allauth отвечает за социальную аутентификацию.
  • django-rest-auth, отвечающий за создание RESTful api для социальной аутентификации. , то есть связь между django-rest-framework и allauth.
person Daniel Mishne    schedule 27.11.2014
comment
Ни одно из доступных решений не имеет надлежащей документации. например, django all oauth, django-restauth - person XciA; 20.11.2017
comment
Согласитесь с @XciA, документация, особенно для django-rest-auth, настолько минимальна, что очень сложно понять, как сделать социальную аутентификацию. - person Evan Zamir; 30.01.2018

Рекомендуется разрешить python-social-auth обрабатывать вход в Facebook за вас, а вместо этого вы используете другой плагин OAuth для Django REST Framework для аутентификации с помощью Django. Это имеет дополнительное преимущество, так как также поддерживает вход в систему не через Facebook через стандартную систему аутентификации Django.

Меня смущает использование Django Social Auth с Django Rest Framework для устройств ios.

Недавно я ответил на аналогичный вопрос о реализации аутентификации с python-social-auth и Django REST Framework. Он включает некоторые важные моменты, о которых следует прочитать при реализации аутентификации с использованием третьей стороны, а также некоторые важные примечания о том, как вы не должны передавать сторонние токены OAuth обратно своему клиенту.

Как я могу использовать эти пакеты вместе?

Хотя в этом ответе конкретно упоминается использование OAuth в качестве метода аутентификации для API, стоящего за python-social-auth, вы можете использовать другие методы аутентификации, которые внутренне используют систему аутентификации Django, например TokenAuthentication. В любом случае вы закончите аутентификацию через прокси между вашим клиентским приложением и сторонним провайдером аутентификации, используя ваш внутренний API.

В чем разница между подключением facebook со спа и мобильным устройством?

Facebook обеспечивает прямую интеграцию с некоторыми мобильными операционными системами, в первую очередь с iOS и Android. Это обходит ваш API для аутентификации и напрямую аутентифицирует ваше мобильное приложение с Facebook. В идеале это будет аутентификация вашего внутреннего API вместо мобильного приложения. Это все еще возможно, если вы передадите токен доступа обратно в свой API вручную, по сути, сделав то же самое, что и python-social-auth, но это может быть рискованно и может не стоить дополнительных усилий. .

Facebook Connect (теперь известный как Facebook Login) работает аналогично тому, как интеграция Facebook работает на мобильных устройствах. Единственное отличие, которое может работать в вашу пользу, заключается в том, что очень легко перейти от входа в Facebook для одностраничных приложений к шаблону аутентификации на основе OAuth. Это задокументировано в документации разработчиков Facebook как «Создание процесса входа в систему вручную» и совместим с библиотеками, поддерживающими вход на основе OAuth, например python-social-auth.

Могу ли я перейти с django-social-auth на python-social-auth?

Это больше не должно быть проблемой, поскольку python-social-auth фактически заменил django-social-auth.

person Kevin Brown    schedule 02.12.2014