Сохранение файла cookie пользователя

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

Я использую аутентификацию Facebook / Google в своем приложении ASP.NET MVC, поэтому я уже использую файлы cookie, но срок их действия истекает, когда пользователь завершает сеанс.

Как правильно подходить к тому, что я хочу делать? Я могу думать о двух подходах:

  1. Не истекайте срок действия файла cookie, но измените значение в нем, чтобы указать, что сеанс пользователя истек.
  2. Создайте еще один файл cookie с другим именем, в котором хранится информация / настройки пользователя.

Я хотел посмотреть, как другие справятся с этим.


person Sam    schedule 10.03.2016    source источник


Ответы (1)


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

Например, размер cookie ограничен 4096 байтами, не так много, если вы хотите хранить изображения (аватары пользователей). Кроме того, файлы cookie перемещаются вверх и вниз по вашему соединению всегда, независимо от того, хотите ли вы получить к ним доступ или нет -> трата полосы пропускания.

Если вы разрабатываете сильное клиентское приложение, могу ли я смиренно предложить вам использовать локальное хранилище? Поддержка более или менее повсеместна (http://caniuse.com/#search=localstorage), он будет сохраняться до тех пор, пока не будет удален, и он не страдает от всех проблем, которые есть у файлов cookie.

Я предлагаю вам проверить этот SO-ответ (Локальное хранилище против файлов cookie) для получения дополнительных сведений о файлах cookie и местное хранение.

Если вам нужна пара примеров использования локального хранилища, вы можете проверить эту ссылку (https://developer.mozilla.org/en-US/docs/Web/API/Storage/LocalStorage). Например:

   function setInfo(key, data) {
    if (!window.localStorage) {
        window.localStorage.setItem(key, data);
    } else {
        console.log('Local Storage: not supported');
    }
}
person Luca Ghersi    schedule 16.03.2016
comment
Благодарю за ваш ответ. Кстати, я не имел в виду, что сохраню реальное изображение аватара. Просто URL-адрес файла аватара. - person Sam; 16.03.2016