У меня есть небольшой SPA с Jquery / Ajax на внешнем интерфейсе и Node / Express на внутреннем. Я использую JSON-Webtoken для аутентификации / авторизации пользователя и столкнулся с небольшой проблемой: когда кто-то пытается получить доступ к конечным точкам приложения www.example.com / app /.. без токена в заголовке запроса пользователь перенаправляется на страницу входа www.example.com / app / login . Теперь проблема в том, что после того, как пользователь войдет в систему через почтовый запрос и получит токен:
await $.post({
url : 'http://localhost:3000/app/auth',
type: "POST",
dataType : 'html',
data: {"email": email, "password": password},
success : function (response) {
sessionStorage.setItem("webtoken", response);
// used to call
// window.location.href = "http://localhost:3000/app";
// call other mysterious function?
},
error : function (response) {
// log error
}
});
Я использовал для вызова функции window.location.href
, однако нет способа установить полученный веб-токен в заголовок запроса. Я попытался использовать ajax GET-запрос в функции обратного вызова succes POST-запроса:
await $.get({
beforeSend: function(request) {
request.setRequestHeader("x-auth-token", response);
},
data: {},
url:"http://localhost:3000/app",
success: function(data){
// How to actually load it?
}
});
Однако это загрузило html приложения в кеш, но мне нужно загрузить страницу приложения с предварительно установленными заголовками запросов, в противном случае я снова буду перенаправлен на страницу входа ... Есть ли способ для этого с JQuery / Ajax из сценария другого html-файла или мне нужно найти решение на бэкэнд-сайте?