Хранение токена авторизации между двумя поддоменами - PullRequest
2 голосов
/ 31 мая 2019

У меня есть веб-приложение Angular 7 с двумя разными поддоменами: sub1.myurl.com и sub2.myurl.com

Они оба имеют одинаковый логинКонечная точка и все API внутри ищут маркер авторизации.

Вы можете переключить ' пространство имен ' внутри приложения, которое в некоторых случаях перенаправляет вас с sub1 на sub2 domain и наоборот, что также означает обновление страницы.

В настоящее время я храню свой токен аутентификации в локальном хранилище.Таким образом, в сценарии, когда пользователь перенаправляется с sub1 на sub2 , содержимое локального хранилища изменяется и токен аутентификации будет потерян.

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

Я также пытался использовать ngx-cookie-service , но не могу найти способ добавитьобщий файл cookie, доступный на локальном хосте без поддоменов, а также в производственных средах на sub1.myurl.com и sub2.myurl.com?

1 Ответ

0 голосов
/ 04 июня 2019

На самом деле разобрался сам. Я опубликую свое решение здесь на случай, если кто-нибудь столкнется с той же проблемой.

   const loc = window.location;
   if (loc.hostname === 'sub1.myurl.com' || loc.hostname === 'sub2.myurl.com') {
      this.cookieService.set('token', session, null, '/', '.myurl.com', true);
   } else {
      this.cookieService.set('token', session);
   }

Таким образом, основываясь на window.location.hostname Я устанавливаю файлы cookie по-другому. В производственной среде, где мне приходится делить файлы cookie между поддоменами, поставив точку (.) Перед параметром domain , он также применим к поддоменам этого домена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...