Мой мыслительный процесс заключается в том, чтобы перенаправить пользователя на страницу angular с параметром запроса или параметром маршрута. Это так же безопасно / ненадежно, так как любой может видеть значения заголовка (если вы беспокоитесь о том, чтобы показать свой JWT конечному пользователю.
Я бы заставил вашу страницу входа принять JWT (или любую вашу страницу, которая перенаправляется to is)
Итак, допустим, вы делаете https://myangularsite.com/login?jwt=JWTTOKEN
Затем на своей странице входа вы можете получить этот токен JWT с URL
const jwt = ActivatedRoute.snapshot.queryParamMap.get('jwt');
Теперь вы можете поместить это значение в localStorage
:
localStorage.setItem('jwt', jwt);
Затем в Angular просто создайте HttpInterceptor
который берет этот токен JWT из localStorage и применяет его к заголовку для каждого запроса:
const jwt = localStorage.getItem('jwt');
const request = req.clone({ withCredentials: true, headers: jwt });
Вы можете думать об этом так же, как когда вы подписываетесь на какую-то услугу, и они отправляют вам ссылка по электронной почте для подтверждения вашей электронной почты. Эта ссылка, по которой вы переходите, возвращает вас на их сайт с токеном подтверждения электронной почты. Когда вы заходите на этот сайт с помощью этого токена, он знает, кто вы из этого токена.
Пример: http://facebook.com/confirm?token=emailconfirmtoken