Хороший вопрос, и у нас есть хорошее обсуждение этого вопроса на API Craft:
https://groups.google.com/group/api-craft/browse_thread/thread/b87fd667cccb9c00
Вот ответ, который я разместил там:
Я думаю, что на самом деле это хороший вариант использования OAuth.
Прежде всего, с помощью OAuth ваше мобильное приложение может хранить токен OAuth на клиенте, а не на «реальном» пароле пользователя.Таким образом, вы можете заставить приложение автоматически «входить в систему», получая токен OAuth без необходимости сохранять действительный пароль на устройстве.Если пользователь теряет устройство или если оно каким-либо образом скомпрометировано, они (или вы) могут стереть токен OAuth, не требуя от пользователя смены пароля и удаления других вещей, которые они могут делать с вашим API.Существуют аналогичные примеры для веб-приложения в стиле Ajax, но оно больше зависит от конкретного способа создания клиента.
Во-вторых, токен OAuth связан с уникальным ключом, который идентифицирует приложение, которое создаетВызов API, который, в свою очередь, определяет, какой разработчик создал приложение.Это дает вам такие возможности, как отслеживание использования приложением, отключение приложения, которое могло быть скомпрометировано, без отключения всего API, и если вы когда-нибудь захотите открыть доступ третьим сторонам или партнерам, которые создают приложения для вашего API, вы можете предложить различные уровниобслуживания других клиентов.
В-третьих, ваши специалисты по ИТ-безопасности будут счастливы, если вы скажете им, что никогда не сохраняете пароль на мобильном устройстве пользователя или не храните его где-нибудь в браузере.
В-четвертых, у вас есть опция входа в браузер для мобильного приложения.Это означает, что мобильное приложение никогда не увидит пароль пользователя, а также, что если вы хотите реализовать двухфакторную защиту или что-то подобное, вы можете сделать это на экране входа в систему, не меняя мобильные приложения.Недостатком является то, что пользователь видит всплывающее окно браузера.Вот почему OAuth дает вам несколько различных способов получить токен доступа для приложения, поэтому вы можете выбрать, нужно ли вам иметь логин на основе браузера или пользователь вводит свой пароль непосредственно в приложении.
Пятыйоткуда вы знаете, что ваш API будет использоваться только вашими приложениями?Если вы используете OAuth сейчас, вам будет легче выполнить этот переход позже.