Браузер не отправляет cookie access token при запросах на бэк. Как можно это исправить?

Всем доброго времени суток. Я пишу планировщик задач в качестве петс-проекта. Бэк на SpringBoot, а фронт на React (проект создавал через create-react-app).

Я пытался реализовать следующий механизм аутентификации: Пользователь логинится в систему по логину + паролю -> сервер формирует JWT и передает его с ответом -> фронт с каждым запросом отправляет этот JWT.

JWT передается куком, который можно считать только на сервере (httpOnly). Ниже приведу параметры кука:

    public HttpCookie createCookie(String jwt){
    return ResponseCookie

            //настройки кука
            .from(cookieJwtName, jwt)
            .maxAge(cookieAccessTokenDuration)
            .sameSite(SameSiteCookies.STRICT.getValue()) 
            .httpOnly(true) 
            .secure(true) 
            .domain(cookieAccessTokenDomain) 
            .path("/") 

            .build();

}

Проблема заключается в том, что браузер не передает JWT на бэк при последующих запросах, после логина (хотя насколько я понимаю он должен делать это автоматически).

В консоли ругается на CORS, хотя домен и хост прописаны в настройках на бэке. Фронт запускается на https://localhost:3000 Бэк на https://localhost:8081

Сертификаты делал сам через KeyStore Explorer.

При этом если на сервере делаю проверку не на JWT, а на наличие аутентификации в SecurityContextHolder: SecurityContextHolder.getContext().getAuthentication(), то все запросы корректно работают. НО - мне хотелось бы реализовать автологин (чтобы при перезагрузке страницы на сервер отправлялся JWT и по нему возвращались данные пользователя (чтобы страница не падала при обновлении). А этот метод не работает, так как браузер не отправляет токен.

Ниже также приведу конфигурационные параметры jwt, которые установлены на бэке:

jwt.access_token_expiration = 86400000

jwt.reset_pass_expiration = 300000

cookie.jwt.max-age = 86400

cookie.jwt.name = access_token

server.domain =localhost

Ответы (0 шт):