Intereting Posts
Android.content.res.Resources $ NotFoundException: Идентификатор ресурса строки Fatal Exception in Main GetPreferences (MODE_PRIVATE) не определено в BroadcastReceiver AppInviteDialog не работает в Android Facebook SDK 4.0 Как установить R.String.App_name в приложении Android Java.io.IOException: сбой записи: EPIPE (Broken pipe) Android, как открыть файл расширения .doc? Как я могу отобразить диалоговое окно над клавиатурой Использовать Chrome как средство рендеринга для веб-просмотра Android OverridePendingTransition не работает в android Как открыть личные файлы, сохраненные во внутреннем хранилище, с помощью Intent.ACTION_VIEW? Как воспроизводить видео в android из папки с ресурсами или в необработанной папке? Android. Как вы поддерживаете старые API, не имея 2 скомпилированных файлов .apk при использовании методов из более новых API? Android 4.3+, android: textColorHint не работает, цвет подсказки всегда белый Кэш приложения iOS PhoneGap Как предустановить VideoView В то время как другой VideoView B играет – Android

Интеграция Facebook для мобильного приложения с использованием API REST для бэкэнд

Мы создаем мобильные приложения (iOS и Android), для которых требуется REST-интерфейс API и интеграция с Facebook для аутентификации.

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

Главный вопрос: кто отвечает за аутентификацию / авторизацию с помощью Facebook, клиента или сервера?

Вариант A: Клиент аутентифицируется для FB. Клиент отправляет запросы, используя токен, полученный от Facebook. Сервер использует этот токен для идентификации пользователя.

Вариант B: Сервер аутентифицируется для FB в интересах клиента.

Дополнительные примечания (могут быть уместными или нет):

  • Я разрабатываю часть REST API с помощью Django.
  • Приложение будет нуждаться в доступе к друзьям пользователя Facebook, чтобы мы могли пригласить их использовать приложение.

Вы должны пойти с опцией А.

  • Аутентификация с клиентом. Затем вы получите токен доступа.
  • Отправьте этот токен на сервер.
  • Теперь вы можете создать пользователя, получить друзей FB и все, что вам может понадобиться.

Если вы используете django-rest-framework, вы должны взглянуть на пакет django-rest-auth. Он обрабатывает логин / создание пользователей на стороне сервера с помощью токена доступа.

https://django-rest-auth.readthedocs.org/en/latest/installation.html#social-authentication-optional

Вы можете взглянуть на SDK для Facebook на Python , он должен рассказать вам, как включить его в ваше приложение, и показывает, как интегрироваться с несколькими фреймворками здесь (Flask похож на django для этого).

Facebook будет выполнять аутентификацию на своей стороне, а не вы, хотя вы можете захотеть сохранить токен пользователя в базе данных.