Парень, который пару лет назад делал приложение для iPhone от Pownce, вроде как публично обсуждал это с собой.
Его блог, похоже, больше не работает, но в основном он реализовал его "правильным" способом, что касается OAuth. Вместо ввода учетных данных внутри приложения, Safari был запущен, и они были введены там, а затем в качестве обратного вызова для перезапуска приложения Pownce использовался пользовательский URL-адрес iPhone. Довольно аккуратно, а?
Через некоторое время разработчик добавил, что многие люди скачивают приложение, но на самом деле не используют его. Его заключение? В этом была виновата его блестящая схема OAuth. Пользователи были смущены запуском Safari и удалением из приложения.
Если честно? Я думаю, что виноват тот факт, что приложение было для Pownce, службы, которой никто не пользовался.
У меня сейчас есть приложение в магазине приложений, использующее API Foursquare, которое поддерживает Basic HTTP-аутентификацию и OAuth. Я решил «поступать правильно» и использовать OAuth. Пользователь вводит свои учетные данные прямо внутри моего приложения. Сохраняю ли я где-нибудь их имя пользователя и пароль в виде обычного текста? Нету. Но могу ли я быть? Конечно.
Может показаться, что я спорю здесь с обеих сторон, но в действительности это сводится к тому, что очень маловероятно, что ваши пользователи будут знать или даже заботиться о том, что такое OAuth. Вероятно, столь же маловероятно, что они даже дважды подумают о вводе своих учетных данных в ваше приложение. OAuth великолепен (чертовски лучше, чем OpenID), но не был разработан для iPhone. Он создан для работы внутри веб-браузера. Я думаю, что документы API Foursquare лучше всего говорят об их схеме OAuth для клиента Mobile / Desktop (отличается от того, что они хотят, чтобы вы делали для веб-приложения): «Мы предоставляем этот механизм в предположении, что если пользователь установил ваше приложение на своем оборудовании они настолько доверяют, что передают свои аутентификационные данные в foursquare. "