2016-06-27 3 views
10

Я столкнулся с множеством статей, и многие из них предлагают использовать OAuth over API Key. По моему мнению, в OAuth мы наконец получаем токен доступа, и он действителен в течение многих дней. Одним из примеров является то, что токен онлайн-токена QuickBooks действителен в течение 6 месяцев.OAuth (токен доступа) Vs API Key

Итак, токен доступа эквивалентен ключу API. Тот, кто получает его, должен иметь такую ​​же защиту, как API Keys. И вызовы OAuth должны выполняться через HTTPS, аналогичные вызовам на основе API Key.

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

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

Мое намерение - это просто понять OAuth лучше, а не сравнивать & спорить с API-моделью.

Примечание:
Я не говорю о Google & LinkedIn вид модели, где пользователи должны видеть и давать разрешения. Я просто говорю о API, которые мы предоставляем нашим собственным клиентам.

Спасибо за вашу помощь заранее.

+1

Я думаю, что кто-то уже задал этот вопрос http://stackoverflow.com/questions/6767813/api-keys-vs-http-authentication-vs-oauth-in-a-restful-api –

+0

Да. Все описание этого ответа в моем вопросе. Тогда почему еще OAuth? Действительно ли это полезно только для такого подхода Google - LinkedIn? И это не имеет реальных преимуществ в небольшой клиентской базе? – user10

ответ

12

Вам нужен OAuth только в том случае, если вы хотите, чтобы пользователь вашей службы разрешил стороннему клиентскому приложению получать доступ к своим данным, размещенным на вашем сервисе, не раскрывая его учетные данные (ID & пароль) для приложения ,

Какая пара ключей API & API-код может быть просто аутентификацией клиентского приложения. Если вы можете позволить аутентифицированному клиентскому приложению получать доступ к данным пользователя без явного согласия пользователя, вам не нужно использовать OAuth.

+0

Хорошо. Отлично. Спасибо. – user10

+0

Как использовать OAuth без ключа API и секрет? Разве учетные данные OAuth не будут связаны с идентификатором клиента (ключ api)? – mko

Смежные вопросы