Эксперимент токена JWT находится в странном формате при вызове API - PullRequest
2 голосов
/ 13 июля 2020

Я пытаюсь преобразовать время истечения срока JWT в формат даты. Странно то, что если я использую google chrome и смотрю на локальное хранилище, я получаю следующий формат: 1594663193098

Но когда я использую node для вызова API с функцией ниже, я получаю следующее: 21599

Пытаясь преобразовать вторую дату в обычную дату, я получаю 1970 год, если я не сделаю что-то вроде new Date(21599 * 73830000), которое возвращает примерно правильное время, я знаю, что срок его действия истекает через 12 или 24 часа, не уверен.

с использованием токена из chrome я получаю этот результат new Date(1594663193098 * 1000) = +052502-11-12T22:04:58.000Z

const refreshToken = async () => {
  const requestBody = {
    grant_type: "refresh_token",
    client_id,
    client_secret,
    refresh_token
  };

  const config = {
    headers: {
      "Content-Type": "application/x-www-form-urlencoded"
    }
  };

  const url = "https://www.externalapiurl/api/oauth2/token";

  return axios
    .post(url, qs.stringify(requestBody), config)
    .then(response => response.data)
    .catch(error => console.log(error));
};

Почему я получаю другой формат опыта с узлом и как я могу получить от него правильную дату истечения срока ?

1 Ответ

0 голосов
/ 14 июля 2020

21599 (секунд) просто говорит вам, что токен истечет через 6 часов, но не дает вам фактическую дату. Поэтому я просто создаю метку времени с момента получения токена и добавляю к ней 6 часов.

timeNow = new Date()
timeNow.setSeconds(timeNow.getSeconds() + 21599);
...