Что такое токен API

Я пытаюсь разработать лучший способ обработки аутентификации пользователя для моего мобильного приложения (iOS и Android) и API (PHP).

Из того, что я исследовал, есть следующие варианты:

Basic auth over HTTPS – Проверьте имя пользователя / пароль пользователя для каждого запроса.

Сессии – отправка идентификатора сеанса с каждым запросом; Сервер поддерживает состояние. Поэтому приложение отправляет имя пользователя / пароль, а сервер проверяет зарегистрированного пользователя на последующих запросах, как и на моем сайте.

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

Я предполагаю, что мое объяснение токенов API неверно, поскольку они кажутся идентичными сеансам, потому что я храню идентификаторы сеансов в БД.

  1. Могло бы объяснить мое объяснение токенов API. Для чего они? Как они отличаются от идентификаторов сеансов?
  2. В чем преимущества API-токенов?
  3. Является ли oAuth (если мы хотим упростить его использование) только протокол для создания «токенов API»?

Solutions Collecting From Web of "Что такое токен API"

Я не эксперт, но я дам вам пару центов, которые я взял:

1) API Tokens – это немного общий термин. Обычно маркер API является уникальным идентификатором приложения, запрашивающего доступ к вашей службе. Ваша служба будет генерировать токен API для приложения, которое будет использоваться при запросе вашего сервиса. Затем вы можете сопоставить маркер, который они предоставляют, с тем, который вы храните для аутентификации.

Идентификатор сеанса может использоваться, но его назначение отличается от маркера API. Идентификатор сеанса не является формой аутентификации, а скорее результатом авторизации. Обычно сеанс устанавливается после того, как пользователь имеет право использовать ресурс (например, ваш сервис). Поэтому идентификатор сеанса создается, когда пользователю предоставляется доступ к ресурсу. Маркер API – это форма аутентификации, аналогичная имени пользователя / паролю.

2) Значки API заменяют отправку некоторой комбинации имени пользователя и пароля по HTTP, которая не является безопасной. Однако проблема все еще существует, что кто-то может использовать и использовать токен API.

3) В некотором смысле да. Это метод для сохранения токенов API «свежий». Вместо того, чтобы передавать один и тот же маркер API, вы запрашиваете токен доступа, когда хотите использовать службу. Шаги OAuth 2.0 следующие:
A) Запрос, отправленный на обслуживание с определенными полномочиями
B) Успешный ответ возвращает код
C) Другой запрос на обслуживание выполняется с кодом
D) Успешный ответ возвращает токен доступа для подписания каждого запроса API с этого момента до завершения.

В настоящее время многие крупные поставщики услуг используют OAuth 2.0. Это не идеальное решение, но это, вероятно, самый безопасный, широко распространенный метод защиты API, используемый на данный момент.