Javascript: загрузка URL с помощью GET-запроса JQuery ajax и установка заголовков - PullRequest
0 голосов
/ 27 августа 2018

У меня есть небольшой 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-файла или мне нужно найти решение на бэкэнд-сайте?

1 Ответ

0 голосов
/ 28 августа 2018

Кажется, что это невозможно сделать (или, по крайней мере, я не смог) Вместо этого я сохранил свой веб-токен JSON в файле cookie, который отправляется пользователю после аутентификации. Поскольку cookie сохраняется в браузере и отправляется при каждом запросе, я могу перенаправить пользователя в форму входа с помощью перенаправления ExpressJS всякий раз, когда пользователь пытается получить доступ к конечной точке приложения. Теперь это работает как шарм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...