2012-02-10 2 views
5

У меня есть webapp, который выполняет множество запросов ajax с сервером php и сервером базы данных. Я также создал приложение для iPhone и приложение для Android, которые до сих пор работают в офлайн-приложениях.OAuth: OAuth use use case

Теперь я хочу создать API, который будет использоваться для синхронизации данных между веб-сервером и приложениями для смартфонов. Должен ли я использовать OAuth для этого? Что я читал об OAuth - похоже, что он используется, если я хочу открыть свой API для использования сторонними приложениями. Но здесь я просто хочу обеспечить безопасную передачу данных между API и моими собственными приложениями.

Может ли кто-нибудь пролить свет на это?

ответ

4

Основное использование OAuth заключается в том, чтобы сторонние приложения разрешали доступ к личным ресурсам пользователя на веб-сайте без предоставления учетных данных пользователю стороннему приложению. Например, предположим, что Twitter хочет получить список контактов из вашей учетной записи Yahoo. Традиционный способ - указать свое имя пользователя и пароль Twitter. Но с OAuth вы даете им временный токен (так называемый Access Token), который разрешает Twitter для доступа к вашим контактам на Yahoo в течение ограниченного количества времени (до тех пор, пока этот токен не истечет или вы, как владелец частного ресурса, явно отозвать его).

Это говорит о том, что OAuth не касается безопасной передачи данных в Интернете. Это еще одна история, которая обычно достигается с помощью SSL. Даже если вы используете OAuth, вы должны использовать SSL, чтобы убедиться, что данные отправлены и получены безопасно.

Так что в вашем случае вы должны посмотреть, для чего используется API. Если это общедоступный API, который не предоставляет какие-либо личные данные вызывающим абонентам, нет необходимости использовать OAuth. Если API предназначен для доступа к частным ресурсам отдельных пользователей, вы можете использовать OAuth. Если вы решите реализовать OAuth, вы можете разрешить другим сторонним приложениям получать доступ к вашему API в будущем без каких-либо проблем.

0

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

Важнейшим моментом является то, что мы должны избегать совместного использования имени пользователя и пароля по проводу для проверки подлинности все время. Это означает, что ваш API не должен требовать, чтобы имя пользователя и пароль проверялись, действительно ли пользователь действителен. Что вы можете сделать, отправив имя пользователя и пароль с мобильного или идентификатора устройства или какой-либо другой вещи.

В такой ситуации сервер OAuth приходит на помощь. В принципе, по одному URL-адресу пользователь отправит свое имя пользователя и пароль, чтобы получить свой токен доступа. Как только это будет получено, мы можем использовать токен доступа для проверки каждого запроса и принятия необходимых действий.

Вы можете ссылаться на видео, где я реализовал сервер OAuth в Laravel 5, используя bshaffer, который является одной из лучших библиотек OAuth для любой платформы PHP для пользователя. https://www.youtube.com/watch?v=0vGXbWdtjls