Добавление заголовков http в window.location.href в приложении Angular

У меня есть приложение angular, которое мне нужно было перенаправить на страницу без angular html, поэтому я подумал, что могу просто использовать $window.location.href для перенаправления приложения angular на мой внешний сайт. Это действительно работает отлично, однако у меня есть nodejs/express backend, который проверяет токен аутентификации перед тем, как обслуживать любой контент (даже статический контент).

Для этого требуется, чтобы в заголовке HTTP-запроса был отправлен токен аутентификации. Теперь вопрос:

Может/Как добавить токен авторизации к запросу, который создается путем изменения $window.location.href до его отправки?

Ответы

Ответ 1

При использовании $window.location.href браузер выполняет HTTP-запрос, а не код JavaScript. Поэтому вы не можете добавить пользовательский заголовок, например Authorization, с вашим значением токена.

Вы можете добавить cookie через JavaScript и поместить там свой токен. Файлы cookie будут автоматически отправлены из браузера. Тем не менее, вы захотите просмотреть последствия для безопасности использования cookie против заголовка. Поскольку оба доступны через JavaScript, там нет дополнительного вектора атаки. Если вы не удалите файл cookie после загрузки новой страницы, может существовать эксплойт CSRF.

Ответ 2

Я использую JWT как аутентификацию на сервере Laravel PHP, и он работает, помещая ?token=... в URL. Например, при использовании AngularJS с подключаемым модулем сателлита я добавляю ?token=' + $auth.getToken() к URL-адресу.

Я использую его строго для вызовов API, используя SSL. Помните, что это не может быть безопасным способом аутентификации в вашем случае использования.