любые данные в текущей вкладке при ее обновлении по F5 будут уничтожены для того что бы этого избежать, состояние приложения можно сбрасывать в localStorage Но однако прошу не путать состояние с кэшем!!! например идентификаторы товаров и их количество, которые пользователь добавил в корзину, это состояние (ну если конечно корзину мы храним локально) А вот данные которые мы получаем по идентификаторам товара от АПИ (например название, производитяля, цена и т.д) это кэш его записывать в localStorage не нужно в общем в самом простом случае, состояние это набор данных используя которые мы можем с нуля восстановить работоспособность нашего реакт приложения, до состояния предыдущего сеанса так как единственное например для товара что нам для этого нужно, это идентификатор и его кол-во, (так как все остальное получаем от АПИ), то только идентификатор и его кол-во являются состоянием, а все остальное кэшем
Почти все понял, но в целом понял получается я могу хранить jwt в localstorage, а авторизованность в виде true\false?
jwt это состояние, "авторизованность" это кэш при запуске приложения, достаешь jwt из localStorage далее используя JWT делаешь запрос на сервер, например на /api/user/self если получаешь 401 значит токен протух если 200, то значит токен рабочий и тогда где нибудь в стэйтМэнеджере (ну где там у тебя глобальное состояние приложения для текущего сеанса, например в контексте или редаксе) устанавливаешь признак авторизации в true но сам это признак авторизации в localStorage писать не надо так как может быть ситуация когда он в localStorage true, а токен уже протух
да я тоже подумал что в локал не вариант вообще. Еще вопрос, а токен созданный для клиента его надо в бд записывать или нет?
Ты сейчас как бекендер спрашиваешь? просто у меня довольно поверхностное понимание бэкенда вроде секретные данные на беке не хранят, а хранят только их хэши так как имея учетные данные можно получить хэш, а вот имя хэш нельзя получить учетные данные но вот нужно ли писать в базу именно токены, я не в курсе вроде JWT вообще нигде не хранят, но это не точно.
Обсуждают сегодня