Ответ 1
Это действительно зависит от сценария - трудно сказать, не зная больше об API, но использование "токенов аутентификации" далеко не универсально, вы правы, что многие API не нужны (и не используют ) их. Многие API просто требуют, чтобы ключ API отправлялся с каждым запросом (часто через HTTPS, чтобы предотвратить его перехват), или требуется ключ API для идентификации пользователя, а также цифровая подпись с "секретным ключом", чтобы подтвердить идентификацию пользователя (см. При работе с большинством API-интерфейсов, почему им требуются два типа аутентификации, а именно ключ и секрет?).
Имена пользователей/пароли не часто используются в общедоступных API-интерфейсах, поскольку они недостаточно гибки и не обеспечивают достаточного "разделения" между идентификатором пользователя и идентификатором приложения. Например. вы регистрируетесь в качестве разработчика для использования API Flickr и создаете приложение для iPhone, которое использует этот API, - вы действительно хотите, чтобы ваше имя пользователя/пароль разработчика было встроено в приложение? Что делать, если вы позже измените свой пароль? Что делать, если вы хотите развить 5 приложений и отслеживать использование для них отдельно и иметь возможность отключать любое приложение в любое время, не затрагивая других?
Однако для случаев, когда вы действительно хотите идентифицировать только человека-пользователя, а не приложение (например, закрытый API-интерфейс, который будет обслуживать только ваши собственные приложения, а не публичный API), в большинстве сценариев я не посмотрите что-то не так с тем, что вы предложили, т.е. имя пользователя/пароль через HTTPS с каждым запросом. Кстати, у токенов auth есть дополнительное преимущество: "ограничить" (может истечь в определенное время, может быть ограничено только определенными действиями и т.д.), Но, очевидно, это полезно только в очень специфических сценариях.
ТАКЖЕ: как указал пользователь "Дэн" выше, при разработке API, который требует отправки имени пользователя/пароля с каждым запросом (или с любым запросом действительно, даже если это просто запрос на вход), будьте осторожны, как вы это делаете, Если вы используете технику, поддерживаемую браузерами по умолчанию (например, HTTP Basic Auth), вы мешаете себе никогда не подвергать API безопасному доступу к междоменным пользователям (т.е., Скорее всего, ваш API никогда нельзя безопасно вызывать непосредственно из браузера, то есть из кода AJAX/Flash/Silverlight).
Это сложная тема, которая не может быть объяснена здесь полностью, но просто помните, что если ваш API полагается на любые учетные данные безопасности, которые браузер может запомнить, а затем "тихо" вводить в каждом запросе (например, HTTP Basic Auth, cookie), тогда небезопасно разрешать междоменный доступ к этому API с использованием любой междоменной технологии (CORS, JSONP, crossdomain.xml и т.д.).