Я уверен, что будет очевидный ответ, но я не нашел решения ни в официальной документации, ни в любом месте в Интернете.Зачем мне десериализовать пользователя по каждому запросу с помощью PassportJS?
С Passport.js мы должны определить два метода: один для сериализации и один для десериализации пользовательской сессии.
От official documentation я прочитал:
только идентификатор пользователя сериализован для сеанса, сохраняя объем данных, хранящихся в сеансе небольшого. Если последующие запросы принимаются, этот идентификатор используется для поиска пользователя, который будет восстановлен в req.user
Мой первый вопрос касается термина Сериализация, согласно Wikipedia:
сериализации представляет собой процесс перевода структур данных или состояния объекта в формат, который может быть сохранен
Но в мире, созданном исключительно Javascript, поскольку пользователи являются объектами и объектами родной, почему мы сериализуем? Мы могли бы хранить весь объект в сеансе, что его запрещает?
Затем десериализация - это процесс, требующий большого потребления ресурсов из-за взаимодействия с базой данных. Итак, зачем выполнять десериализацию по любому запросу? Не могли бы мы сделать это только один раз и сохранить результат для дальнейших запросов?
Я много читал о PassportJS, и я могу реализовать систему входа в систему, но я хотел бы прояснить эти неясные аспекты. Спасибо.