2013-05-12 7 views
2

Я уже давно работаю с ServiceStack, и мне это нравится. Но есть одна вещь, которую я не могу понять. Как приложения (ios, android и т. Д.), Которые используют мои конечные точки servicestack, предположим использовать конечную точку facebook «/ auth/facebook»? При использовании этого url "/ auth/facebook" в браузере он отлично работает, но ответ - html, а не AuthResponse и что-то сериализуемое.Использование FacebookAuthProvider в приложениях

Является ли этот конечный пункт только для использования с веб-сайтами со службой обслуживания в том же решении?

ответ

2

То, как работает этот материал, перенаправляет пользователя на Facebook с помощью ключа API, соответствующего вашему приложению. Затем пользователь сообщает Facebook, что ваше приложение в порядке, и Facebook перенаправляет их обратно. Это можно сделать только через браузер. Вы действительно есть два варианта, чтобы работать вокруг этого:

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

  • Используйте встроенный материал iOS Facebook и отправьте полученные токены auth в конечную точку вашего приложения, где вы можете сохранить их для последующего использования.

Редактировать, немного больше уточнение:

Вариант 1

  1. пользователь зайдет на ваш сайт
  2. пользователь нажимает на Auth С кнопкой Facebook
  3. Пользователь отправленного ваша конечная точка Facebook установлена ​​в Service Stack
  4. Пользователь перенаправляется службой Stack на Facebook
  5. Пользователь перенаправляется обратно в Service Stack из Facebook с маркером в URL-адресе
  6. Вы сохраняете токен в своей базе данных и сообщаете пользователю, что теперь они могут использовать ваше приложение с помощью Facebook ,

Вариант 1,5

же, как Вариант 1, но вместо того, чтобы пользователь идти через браузер, вы создаете UIWebView контроль и направить его на Facebook Auth конечной точки. Затем вы слушаете ответ со своего сайта, в котором говорится, что пользователь аутентифицирован. Я не объективен, поэтому я не могу более подробно рассказать о том, как это сделать.

Вариант 2

  1. Используйте API IOS Facebook и управления аутентификацией as seen here.
  2. POST учетные данные в Service Stack через пользовательскую конечную точку
  3. Сохраните учетные данные в db и используйте их в будущем для совершения вызовов от имени пользователя.

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

+1

@option 1: как приложение узнает, что поездка в Facebook прошла успешно, когда мы больше не в приложении? И когда успешно, каковы учетные данные, которые будут использоваться против auth/credentials? Как и Facebook? –

+0

@option 2: что такое встроенный ios Facebook Stuff? Я искал почти все, что связано с служебной программой, и не наткнулся на это. Будет ли это возможность отправлять аутентификацию в приложение? Я предполагаю, что это нельзя использовать для андроида? –

+0

Я разработал немного, также я имел в виду IOS SDK для Facebook. –

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