Как правильно выйти из аутентифицированного токена после того, как вызов API вернет ответ? - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть приведенный ниже код на стороне клиента, при событии щелчка. Он отправляет запрос на серверный узел для получения токена, затем, когда токен возвращается из внешнего URL-ответа.Он передает этот токен на второй вызов ajax для вызова определенного маршрута API.

Все это прекрасно работает, но я хочу выйти из токена после получения ответа от определенного маршрута API (с использованием токена).Так что после ответа у меня не останется токен.

Что может быть хорошим способом для этого?Мое текущее решение - когда дается ответ для определенного маршрута API, отправьте запрос на выборку в / tokenrequest / logout, чтобы выйти из токена.Но не уверен, что это правильный или хороший способ сделать это.

getdata.addEventListener("click", function(e) { //simple button click to initiate api
  e.preventDefault();
  $.ajax({
    method: "GET",
    url: "/jdeapi",
    error: function(request, status, error) {
      console.log(error);
    }
  }).then(function(data) {
    console.log(JSON.parse(data));
    let rawData = JSON.parse(data);
    var token = rawData.userInfo.token;
    $.ajax({
      method: "POST",
      url: "/sendtojde",
      data: {
        token
      }
    }).then(function(data) {
      console.log(data);
    })
  })
})

Код стороны сервера узла для запроса токена следующий:

router.get('/jdeapi', function(req, res) {
  let url = 'https://Aisserver:port/jderest/tokenrequest';
  let data = {
    username: 'username',
    password: 'password',
    deviceName: 'riolivApp'
  }
  fetch(url, {
      credential: 'include',
      method: 'POST',
      body: JSON.stringify(data),
      headers: {
        'Content-Type': 'application/json'
      }
    }).then(response => response.text())
    .then(text => res.json(text));
})

Затем, после 2-го ajax-вызова на стороне клиента, вызов на стороне сервера для получения конкретного API выглядит следующим образом

router.post('/sendtojde', function(req, res) {
  console.log(req.body.token);
  let url = "https://Aisserver:port/jderest/poservice"
  let data = {
    token: req.body.token,
    deviceName: 'riolivApp',
    applicationName: "P4310",
    version: "RMI0001"
  }

  fetch(url, {
      credential: 'include',
      method: 'POST',
      body: JSON.stringify(data),
      headers: {
        'Content-Type': 'application/json'
      }
    }).then(response => response.text())
    .then(text =>
      res.json(text));
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...