2011-07-09 4 views
4

Я пишу приложение для iPhone, которое работает против моего собственного сервера.Вход в социальные сети с помощью iOS

В принципе, это форум, на котором пользователи могут публиковать сообщения. Я не хочу, чтобы пользователи приходили на учетную запись на моем сервере, но я предпочитаю, чтобы они входили в систему, используя любую существующую учетную запись: Facebook, Linkedin, Foursquare и т. Д. Итак, из самого приложения я хочу, чтобы они были чтобы войти в систему, используя свою существующую учетную запись, которая затем позволит им размещать сообщения на форуме.

Мой вопрос в том, что: когда пользователь отправляет сообщение, как я могу проверить, вошел ли он в систему с какой-либо услугой? Мне нужно проверить его как на стороне клиента, так и на стороне сервера. Я планирую писать серверную часть с помощью PHP.

Благодаря

ответ

11

См this question для подобной дискуссии (ограничивается только Facebook знак на). Вот краткий обзор того, что должно произойти (взято из этой дискуссии, с которой я связан):

  1. Пользователь открывает приложение на телефоне. Выбирает службу для аутентификации.
  2. Аутентификация через один из доступных сервисов (Facebook, Twitter, foursquare и т. Д.) И получает некоторые специальные access token.
  3. Ваше приложение принимает маркер и отправляет его на ваш сервер.
  4. Ваш сервер получает токен и проверяет его. Он проверяет его на API сервиса и (по крайней мере, на Facebook и Twitter) получает соответствующий идентификатор пользователя.
  5. Принимая действительный идентификатор, ваш сервер проверяет, был ли пользователь уже установлен пользователем. Если это так, он регистрирует их. Если идентификатор пользователя не был создан, ваш сервер создает свою собственную пользовательскую запись, связанную с этим идентификатором пользователя, и регистрирует пользователя. В любом случае пользователь заканчивает вход в систему и выдает проблемы с сервером a session key к вашему приложению.
  6. session key используется для дальнейшей связи между вашим приложением и вашим сервером до тех пор, пока пользователь не выйдет из системы.

По телефону вам понадобится библиотека OAuth, позволяющая пользователям проходить аутентификацию с помощью другой службы. Вероятно, вы захотите использовать Facebook iOS SDK, чтобы позволить им использовать Facebook и использовать один из предложенных OAuth libraries here для других служб проверки подлинности. Я использовал только SDK для Facebook, поэтому я не могу говорить об общих библиотеках OAuth.

После входа в систему телефон не должен хранить access token, только session key.

Предполагая, что пользователи могут использовать несколько сервисов для доступа к своей учетной записи, вам также понадобится способ подключения двух служб к одному и тому же пользователю (возможно, по электронной почте).

Вам решать, как ваше приложение и ваш сервер обмениваются данными. Я бы воспользовался API JSON + REST для связи с сервером.

+0

Это была идея, которую я имел в виду, но не был уверен, нужно ли мне создавать запись на моем сайте. Благодаря! –

0

Другим вариантом, позволяющим вашим пользователям входить в систему с помощью нескольких сервисов, является Socialize (www.getsocialize.com). Это SDK с открытым исходным кодом, который управляет вашими пользователями и аутентификацией, поэтому вам не нужно реализовывать все шаги, описанные выше cbrauchli.

Смежные вопросы