Не удается получить доступ к API-интерфейсу flask @ login-обязательный интерфейс - PullRequest
0 голосов
/ 03 декабря 2018

У нас есть сервер, который реализован с помощью python flask, и он RESTful.Поскольку это RESTful, мы должны разрабатывать интерфейсные страницы с использованием API.Проблема в том, что наш сервер использует встроенные в колбу модули Login_manager и session для управления клиентскими сессиями.Когда я пытаюсь отправить запросы в API, требующие входа в систему, сервер не разрешает мне.Исходя из результатов моих поисков, я должен как-то отправить файл cookie сеанса внешнего интерфейса на сервер вместе с моими запросами.Так как мне это сделать (если это решение)?И что я должен добавить к своим логинам JavaScript и кодам извлечения API?

JS login:

  var request = new XMLHttpRequest();
  var url = 'http://127.0.0.1:5000/api/login';
  var user = {
    'email': email,
    'password': password
  };
  request.open('POST', url, true);
  request.setRequestHeader("Content-Type", "application/json");
  request.onload = function() {
    if (this.readyState === XMLHttpRequest.DONE && this.status === 200) {
      var resp = JSON.parse(this.response);
      if (resp.status === "OK") {
        sessionStorage.setItem('user', JSON.stringify(resp.user));
        document.cookie = "user_id="+resp.user.id;
        window.location.replace('app.html');
      } else {
        alert("User info not correct");
      }
    } else {
      alert("Request not made");
    }
  }
  request.send(JSON.stringify(user));

И затем, скрипт не работает, потому что API / showApps является @ login-required:

  var request = new XMLHttpRequest();
  var url = 'http://127.0.0.1:5000/api/showApps';
  request.open('GET', url, true);
  request.onload = function(e) {
  //manage data

  }
  request.send();
...