добавить 8 часов к дате выдачи токена - PullRequest
1 голос
/ 01 апреля 2020

У меня есть эта функция:

export const isTokenValid = () => {
  const isTokenExist = localStorage.getItem("TOKEN_AUTH");
  if (!isTokenExist) return false;
  const token = isTokenExist.split(" ")[1];
  const jwt = JSON.parse(atob(token.split(".")[1]));
  const iat = (jwt && jwt.iat * 1000) || null;
  console.log(iat);
  console.log(Date.now());
  const isExp = Date.now() > iat;
  if (isExp) {
    // localStorage.clear();
    return false;
  }
  return true;
};

В console.log ():

1516239022000
1585764070793

Я должен проверить, действителен ли токен, выданный в (iat) +8 часов до сейчас же. Как я могу добавить 8 часов к стоимости iat.

1 Ответ

1 голос
/ 01 апреля 2020

Отметки времени в JWT: UNIX отметки времени с 01.01.1970 00:00 UT C: https://tools.ietf.org/html/rfc7519#section -4.1.4 объясняет, что для числовой даты c используется требование exp (а также для требований nbf (не ранее) и iat (выданных в))

https://tools.ietf.org/html/rfc7519#section -2 определяет число c дата:

A JSON цифра c значение, представляющее количество секунд с 1970-01-01T00: 00: 00Z UT C до указанной даты / времени UT C, без учета високосных секунд.

3600 секунд - один час, поэтому вы добавляете 8 * 3600 = 28.800 к исходному значению iat из токена (1516239022). Но нет необходимости, как видно из вашего кода, умножаться на 1000.

...