У меня есть бэкэнд Spring Boot и интерфейс React. Они работают в одном домене. Но внешний интерфейс URL используется через другой URL. Он там встроен (встроенное приложение).
При открытии приложения на другом сайте (после входа на другой сайт) оно отправляет hma c и некоторые поля, которые используются для генерации hma c, которые будут отправлены на мой бэкэнд.
fetch(window.urlJwt + parameters, {
method: "GET",
credentials: "include"
}).then(response => response.text()).then(text => {
if (text === "OK") {
//no problem
} else {
//problem
}
});
Теперь это будет обрабатываться в бэкэнде следующим образом:
public void createJwt(HttpServletRequest request) {
#some code
request.getSession().setAttribute("token", jwtToken);
}
И после этого, когда веб-интерфейс пытается использовать службу API
fetch(url, {
method: "GET",
credentials: "include",
headers: {
"Content-Type": "application/json"
}
})
.then(res => res.json())
.then(json => {
#stuff
}).catch((error) => {
console.log('Error: ' + error);
});
}
И затем проверка его в бэкэнде.
public String useServices(HttpSession session) {
#somelogic
String token = (String) session.getAttribute("token");
THIS WILL BE NULL, BECAUSE DIFFERENT SESSION
#somelogic
}
Это свойства моего приложения
spring.session.store-type=jdbc
spring.session.jdbc.initialize-schema=always
spring.session.timeout.seconds=900
Когда я делаю ту же реализацию с простым JSP, он сохраняет тот же сеанс.
Что я делаю не так?