Есть задача реализовать список желаний в интернет-магазине без регистрации пользователя.
Интернет магазин на Laravel 5.2. Подскажите, пожалуйста, где лучше хранить продукты, добавленные в список желаний?
В сессиях или куках? Как правильно?
И как сделать так, чтобы они хранились там максимально долгое время?
Я понимаю, что можно просто увеличить время хранения сессий в настройках Laravel.
Но всё же, интересует, как это делают профессионалы? Интернет-магазин делаю первый раз.
Заранее спасибо.
Можно назначать нажавшему на "добавить список желаний" свою session-cookie. Она будет авторизовывать его в дальнейшем.
Осторожно: пользователь может изменять cookie на своей стороне. Сделайте длинный случайный хэш в куке, чтобы сократить совпадения с другими пользователями.
Хранить выбранные товары можно в базе данных - отображать wish-товары, сопоставляя с его session-cookie - но это нежелательно: любой массовый флуд по кнопке "add to wishlist" с отключёнными куками зальёт вашу базу тонной несуществующих записей.
Поэтому, вместо авторизации, можно просто хранить выбранные товары в куках, не создавая никаких сессий.
Должно быть понимание, что пользователь не увидит свой wishlist между устройствами, а в дальнейшем потеряет его при обнулении кук или переключении на другой браузер.
в куках - список желаемого нужен пользователю - если поменяет не страшно, можно просто ид на товар сохранять - обычным текстом через запятую(или json) вместе с датой добавления.