Как прочитать дату истечения срока действия файлов cookie в Express?

Я хочу прочитать дату истечения срока действия файла cookie. Вот как я настраиваю cookie:

res.cookie("tokenCookie", token, {
      secure: false,
      httpOnly: true,
      expires: dayjs().add(1, "hour").toDate(),
    });

Я использовал библиотеку cookie-parser и req.cookies вернул пару ключ-значение файла cookie и его значение. Однако это значение не включает дату истечения срока действия файла cookie, а только значение, которое я назначил для хранения файла cookie.

{
  tokenCookie: 'sample.auth.token'
}

Как я могу прочитать или получить доступ к дате истечения срока действия в атрибуте expires?

🤔 А знаете ли вы, что...
С JavaScript можно создавать расширения для различных платформ, таких как Adobe Acrobat и Microsoft Office.


61
1

Ответ:

Решено

Браузеры обрабатывают истечение срока действия файлов cookie, поэтому они не передают значение срока действия файла cookie на сервер. Если вам действительно это нужно на стороне сервера, вы делаете что-то похожее на это при отправке куки

const expirationDate = new Date();

const cookieValue = JSON.stringify({
  token: token,
  expires: expirationDate.toISOString(),
});

res.cookie("tokenCookie", cookieValue, {
  secure: false,
  httpOnly: true,
  expires: expirationDate,
});

а затем проанализируйте значение файла cookie, чтобы получить дату истечения срока действия и токен.

const cookieValue = req.cookies.tokenCookie;

if (cookieValue) {
  const { token, expires } = JSON.parse(cookieValue);
  console.info("Token:", token);
  console.info("Expiration Date:", new Date(expires));
} else {
  console.info("Token cookie not found.");
}