У меня есть поиск в Интернете для ответа на этот вопрос, но нет ничего похожего на мои настройки.
Итак, у меня есть одностраничное приложение и 3 службы:
- Бэкэнд-сервис - сервис A
- Сервис для обслуживания статических файлов SPA - сервис B
- Сервис аутентификации - сервис C
Процесс выглядит следующим образом:
- Пользователь заходит на сайт, переходя на
/
службы B, перенаправляется на /login
службы B. - Пользователь вводит учетные данные, и они отправляютсяслужбе C для выполнения процесса аутентификации и получения разрешений для пользователя эти данные отправляются в JWT.
- Служба B затем помещает их в файл cookie и возвращает их в браузер пользователя.
- Затем пользователь выполняет задачу, для которой требуется JWT, поэтому я должен отправить этот файл cookie в службу A, но есть проблема, я не могу это сделать, файл cookie предназначен только для службы A.
https://auth0.com/docs/security/store-tokens - эта ссылкаПример источника, который я обнаружил, говорит о том, где хранить токены для SPA. Там написано, что я должен использовать cookie для хранения JWT, если:
- Если у меня есть свой собственный бэкэнд
- Если бэкэнд находится в том же домене, что и сам сайт.
Проблема в том, что мой бэкэнд имеет другой URL, это совершенно другой сервис, поэтому использование куки не будет решением, или, по крайней мере, мне так кажется.
Затем он говорит:
Если ваше одностраничное приложение вообще имеет внутренний сервер, то токены должны обрабатываться на стороне сервера с использованием потока кода авторизации, потока кода авторизации с проверочным ключом для обмена кодами (PKCE) или Hybrid Flow.
Проблема здесь в том, что они даже не упоминают, как и где хранить JWT, чтобы я мог получить к нему доступ из нескольких доменов.
IЯ не нашел чистого способа сохранить этот JWT в браузере пользователя и отправлять его при каждом запросе, который я делаю, бэкэнду.
Решение, которое мне нужно, - это безопасно сохранить JWT в браузере. пользователя, аллопопросите меня отправить его в любой бэкэнд-сервис, который мне нужен.
Спасибо за чтение и помощь!