Связаться с 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?

Ответы

Ответ 1

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

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

Ответ 2

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

  • С django rest framework вы уже знакомы.
  • allauth отвечает за социальную аутентификацию.
  • django-rest-auth отвечает за создание RESTful api для социальной аутентификации, то есть соединение между django-rest-framework и allauth.

Ответ 3

Рекомендуется, чтобы 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.