Код Senior Реализация с нуля обновлено

Разбор и установка cookie

Условие

parseCookies(str) → объект. serializeCookie(name, value, options) → строка вида 'name=value; Max-Age=3600; Path=/; SameSite=Lax'. Значения кодируются.

Что проверяют тесты

  • разбирает

  • декодирует значение

  • значение со знаком равенства

  • пустая строка

  • собирает с опциями

  • флаги без значения

Как подойти

split('=') без ограничения ломается на JWT и base64 - отсюда indexOf и slice. Кодирование не косметика: незакодированная точка с запятой превратит одно значение в два поддельных атрибута. Из атрибутов на собеседовании ждут понимания HttpOnly (недоступна из JS, защита от XSS), Secure (только по HTTPS) и SameSite (защита от CSRF).

Подсказки: 2
  1. Резать по первому знаку равенства, а не по всем - значение может его содержать.
  2. Значение обязательно кодировать: точка с запятой в нём разрушит всю строку.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.