Обычно для аутентификации в веб-службах используется заголовок авторизации, который содержит секретный токен. А поскольку безопасность этого механизма зависит от того, является ли токен секретным, следует позаботиться о том, чтобы этот токен не стал объектом утечки.
В Интернете есть бесчисленное количество руководств, в которых объясняется, как такой заголовок авторизации может быть установлен с помощью angular, и, по крайней мере, те, которые я действительно читал, используют перехватчик $http, и теперь один из них обсуждает, что токен не утек.
Есть несколько общедоступных и частных API, которые можно использовать для междоменного взаимодействия благодаря CORS. И, очевидно, я не хочу отправлять свои внутренние токены авторизации ни по одному из этих запросов.
На ум приходят некоторые другие методы, такие как установка токена вручную только для каждого запроса, но это означает много повторяющегося кода. Сервер $http может быть обернут службой $authenticatedHttp, чтобы он всегда отображался из используемого объекта, независимо от того, является ли он аутентифицированной службой или обычной. Однако служба $http имеет так много методов, которые нужно обернуть.
Есть ли лучшее решение?
ОБНОВЛЕНИЕ
Из ответов у меня сложилось впечатление, что мой вопрос не был понят. Я пробую это на более конкретном примере:
У меня есть частная веб-страница. Люди должны входить в систему с именем пользователя/паролем, и скажем для простоты, что мы используем базовую аутентификацию HTTP, поэтому имя пользователя/пароль закодированы в bas64 и передаются при каждом запросе в HTTP-заголовке «Авторизация». Пока проблем нет.
Но есть отличный и бесплатный виджет погоды. Я могу получить текущую информацию о погоде в формате JSON из https://myWhateverWeatherService.tld/weather.json. После входа в мой частный веб-сервис я также получаю информацию о погоде (CORS позволяет мне это делать).
Проблема в том, что, хотя myWhateverWeatherService.tld вообще не требует никакой аутентификации, служба angular $http все равно добавит заголовок авторизации. И я не доверяю ребятам из myWhateverWeatherService.tld. Может быть, они просто настроили службу, чтобы украсть токен авторизации и делать с ним много неприятных вещей.
Мне нужен надежный способ справиться с этим. Я уже думал о проверке URL-адреса с помощью некоторого регулярного выражения в перехватчике. Это возможно, но также нетрудно забыть об определенном случае, который мое регулярное выражение пропустит.