Как пройти проверку подлинности с помощью Foursquare OAuth2 в приложении jQueryMobile (без использования потока агентов) - PullRequest
3 голосов
/ 26 мая 2011

Я создаю мобильное приложение с помощью jQueryMobile и собираюсь развернуть его на iPhone благодаря PhoneGap.

Мой вопрос: как я могу аутентифицировать себя с Foursquare, используя протокол OAuth2 в моем приложении jQueryMobile? Одним из решений было бы использование потока useragent OAuth2, но это заставило бы iPhone запускать Safari и, следовательно, не оставаться в приложении. Есть ли лучшие решения, чем это?

Ответы [ 2 ]

1 голос
/ 04 октября 2011

Для приложений на базе iPhone или на стороне клиента, как в PhoneGap, Foursquare рекомендует один из этих методов.

  • Если у вас нет основного кода сервера, вы можете встроить веб-браузер и использовать поток токенов, перенаправляя пользователя на фиктивную страницу в вашем домене.Затем вы можете извлечь токен из URL и закрыть браузер.Для справки у нас есть образец Android и код iOS .
  • Если у вас есть сервер как часть вашего приложения, вы можете использовать приведенный выше поток серверов, возможно, ввстроенный браузер.Подобно API Facebook, вы можете добавить display = touch к вашим авторизационным или аутентифицированным URL-адресам, чтобы получить мобильный оптимизированный интерфейс.
  • Альтернативой вышеупомянутому является использование потока сервера и внешнего браузера, но перенаправление напользовательский обработчик URI, который возвращает пользователя в наше приложение.Вы можете вставить секрет в свое приложение и обменять предоставленный код на токен доступа.ПОЖАЛУЙСТА, примите меры, чтобы запутать ваш клиентский секрет, если вы включите его в выпущенный код, и будьте готовы повернуть его при необходимости.

https://developer.foursquare.com/docs/oauth.html

Возможно, этообрабатывается с помощью плагина ClientBrowser для PhoneGap или просто адаптирует образец кода, который они предоставили, в плагины PhoneGap.

0 голосов
/ 27 мая 2011

Одно из основных намерений OAuth2 - не допустить прохождения аутентификации без браузера, как мы делали с XAuth в прошлом.Поставщики услуг хотят, чтобы потребители видели, какие разрешения они подписывают, и хотят контролировать этот процесс.

Я не очень разбираюсь в Phonegap, так как я являюсь разработчиком, но если есть способинстанцируя UIWebView и показывая его пользователю, вы, по крайней мере, можете поддерживать веб-взаимодействие внутри приложения.Учитывая, что телефонный разрыв в основном показывает UIWebView, это должно быть возможно.Можно проверить источник HTML в UIWebView, используя

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...