Лично я предпочитаю хранить данные не в Cookie и даже не в localStorage, а во встроенной базе данных
IndexedDB.
Подключаем
специальную библиотеку, которая упрощает работу с базой InxdexedDB:
<script src="https://cdnjs.cloudflare.com/ajax/libs/localforage/1.9.0/localforage.js"></script>
Далее, чтобы сохранить какие-то данные выполняем в консоли браузера:
result = await localforage.setItem('key', save_data);
console.log('Данные успешно сохранены:');
console.dir(result);
Где в
save_data лежат сохраняемые данные, а
key это ключ по которому можно было бы получить к ним доступ.
Из важных особенностей здесь то, что в
save_data мы можем положить любой тип данных - хоть строку, хоть массив, хоть объект. Да даже файл при желании можно сохранить! При этом нет ограничений по объему хранимых данных, можете хоть мегабайт, хоть сто мегабайтов запихнуть - встроенное хранилище все сожрет.
Чтобы потом извлечь сохраненные данные достаточно выполнить:
result = await localforage.getItem('key');
console.log('Данные успешно извлечены:');
console.dir(result);
Срок хранения данных - неограниченно. Или пока пользователь вручную не обнулит браузер.