2015-04-16 3 views
3

Я довольно новичок в веб-разработке, так что несите меня.OAuth 2.0 С веб-API и Xamarin

  1. Я разработал сервер backend в C# (не веб-приложении), который предоставляет некоторые функции через API REST, реализованный в веб-API (OWIN и Katana).
  2. Я разработал приложение для андроида Xamarin, которое использует этот API.

Теперь я хочу включить использование API только для пользователей, имеющих аутентификацию с помощью Google.

Я знаю, что OAuth - это способ сделать это, и я много читал об этом, но я все еще путаюсь о роли здесь и кто должен что-то делать.

Что должен делать мой сервер или его реализация? что должен делать мой клиент или реализовать?

ответ

3

Важной особенностью OAuth2, чтобы быть в курсе, два различных типа потока аутентификации:

  • неявный поток аутентификации
  • Явный поток аутентификации

Я лично нашел Instagram API документация, чтобы объяснить это довольно хорошо: https://instagram.com/developer/authentication/

Явный поток аутентификации немного больше сложно, потому что это требует дополнительной координации со стороны вашего пользовательского API. Неявный поток аутентификации немного проще, потому что ваше приложение просто ищет фрагмент URL-адреса, который возвращается от поставщика OAuth. Этот фрагмент URL содержит токен, который вы можете использовать для последующих вызовов API, с которыми вы хотите поговорить, Google в вашем случае.

Но в вашем случае, похоже, вы хотите использовать Google в качестве поставщика удостоверений для своего пользовательского API, правильно? В этом случае, я думаю, вам нужно будет использовать явный поток auth. Опять же, ознакомьтесь с документами Instagram. Я считаю, что они особенно хороши в объяснении OAuth2.

EDIT:

И быть в курсе компонента Xamarin.Auth, который предназначен для облегчения сценариев OAuth. Вы можете найти его в Xamarin Component Store или по телефону Github.