В настоящее время я создаю систему аутентификации перед публичным веб-API для веб-приложения. Учитывая, что каждая учетная запись пользователя имеет ключ API, и каждый запрос должен быть аутентифицирован, у меня есть две альтернативы:
-
Используя базовую аутентификацию HTTP, как это делает GitHub.
Запросы должны быть отправлены по URL-адресу
http://api.example.com/resource/id with basic authentication username: token password: the api key
-
Передача маркера API в качестве параметра querystring.
Запросы должны быть отправлены по URL-адресу
http://api.example.com/resource/id?token=api_key
Также есть третий вариант, который передает токен в URI, но мне, честно говоря, не нравится это решение.
Какое решение вы бы приняли и почему?