Система достаточно надежна но есть одно НО. Время жизни сессии. Обычно она составляет 1440 секунд. Я реализовал это оставляя куку с идентификатором сессии и временем жизни месяц, при посещении проверял наличие куки и если поменялось то сравнивал пользователя куки если это тот же самый то обновлял эту переменную. Так же реализовал механизм авториризации после гостевого режима с переписыванием корзины на пользователя. Главное это пользователь а сессия вторична.