Программирование API: аутентификация.

25.08.2012 at 15:07

Оригинал статьи

Большинство API используют для авторизации OAuth/OAuth2, логин + пароль, токен или специальный параметр, включаемый в каждый запрос. Все они имеют свои плюсы и минусы:

  • Oauth (и разрабатываемый OAuth2) является стандартом дефакто, если основной потребитель API – сторонний разработчик. Он безопасен, удобен и легок в использовании. Недостатки: реализации могут незначительно отличаться в разных сервисах (я часто слышу, что «документация – это реализация»). Так же велики накладные расходы для случаев, когда нужно просто передать данные.
  • Логин с паролем или специальный токен работают быстро, не требуют ничего кроме curl, и можно даже делать запросы прямо из браузера. Неудобство заключается в том, что пользователь вынужден получать этот токен.
  • Логин с паролем или токен в параметрах URL к счастью встречаются редко. Этот способ более запутан, чем обычная авторизация, имеет все те же недостатки и не имеет никаких преимуществ.

В итоге получаем равновесие: Oauth позволяет делегировать авторизацию стороннему сервису, а токен проще и быстрее в использовании. Лучший выход – предоставить на выбор несколько способов аутентификации.