2016-02-16 3 views
4

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

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

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

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

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

Дополнительные примечания (может иметь значение или нет):

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

Ваш отдых апи поддерживает вход в систему с электронной почтой, а? Какие еще варианты вы хотите реализовать с помощью facebook (получение списка друзей пользователя и т. Д.)? –

+0

@MuchOverflow В настоящее время логин будет иметь только Facebook. Мы также должны делиться контентом с друзьями в Facebook. – dashmug

+0

http://stackoverflow.com/a/27295322/165106 имеет хорошее объяснение, почему опция B является лучшей. –

ответ

2

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

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

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

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

0

Вы посмотрите на Facebook SDK for Python может, он должен сказать вам, как включить его в ваше приложение, и это показывает, как интегрировать с несколькими рамками here (колба подобен Джанго для этого).

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

+0

Если я делаю это на стороне сервера, то серверу нужно спросить учетные данные пользователя Facebook, правильно? А затем отправьте его FB для аутентификации. – dashmug