Наш сайт продает вещи -> телевизоры, машины, платья и т. Д. API позволит людям просматривать магазин и покупать вещи.Чтобы купить, вам необходимо войти в систему.Мне нужно убедиться, что человек, который пользуется своим мобильным телефоном, действительно является им.
Если это действительно требование, вам нужно хранить идентификационные данные пользователей в своей системе.Самая популярная форма отслеживания личности - через имя пользователя и пароль.
Я посмотрел, как это делает твиттер с их OAuth .. и похоже, что они имеют несколько значений вЗАПРОСИТЬ ЗАГОЛОВОК?Если это так (и мне нравится этот подход), возможно ли, что я могу использовать другую стороннюю компанию в качестве веб-сайта для хранения имени пользователя / пароля (например, Twitter или Facebook являются поставщиками OAuth) ... и все, что я делаю, это как-то извлекаюпользовательские данные заголовка .. и убедитесь, что они существуют в моей базе данных .. еще .. заставить их проходить аутентификацию у своего поставщика OAuth?
Вы путаете две разные технологии здесь, OpenID и OAuth (не расстраивайтесь, многие обманывают это).OpenID позволяет вам отложить идентификацию отслеживания и аутентификации для провайдера , а затем принять эти идентификационные данные в вашем приложении в качестве акцептора или проверяющей стороны .OAuth, с другой стороны, позволяет приложению (потребителю) получать доступ к пользовательским данным, которые принадлежат другому приложению или системе, без ущерба для безопасности ядра других приложений.Вы бы поддержали OAuth, если бы хотели, чтобы сторонние разработчики получали доступ к вашему API от имени ваших пользователей (это не то, о чем вы заявили, что хотите сделать).
Что касается заявленных вами требований, вы определенно можете посмотретьпри интеграции Open ID в ваше приложение.Есть много библиотек, доступных для интеграции, но поскольку вы попросили дать независимый ответ, я не буду перечислять ни одну из них.
Или есть другой способ?
Конечно,Вы можете хранить идентификаторы пользователей в своей системе и использовать basic или digest аутентификацию для защиты вашего API.Базовая аутентификация требует только одного (легко вычисляемого) дополнительного заголовка для ваших запросов:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Если вы используете базовую или дайджест-аутентификацию, убедитесь, что ваши конечные точки API защищены с помощью SSL, иначе пользовательские учетные данные могут легкобыть вдыхаемым по воздуху.Вы также можете заранее идентифицировать пользователя и вместо этого эффективно аутентифицировать пользователя при оформлении заказа с помощью информации о кредитной карте, но это вызов для вынесения суждения.