Доброй ночи. Есть небольшое SPA, в котором клиентская часть сделана на реакте. Возник вопрос, как хранить какие-то постоянные данные (например имя пользователя, фирму в которой он работает) на клиенте? Поясню...
Клиент отправил логин/пароль, получил веб-токен и некую постоянную инфу о себе (логин, имя фамилия, фирма, балланс текущий, да что угодно). Потом произвел некие действия на сайте (отправил данные на сервер, получил их с него). Как вот эту постоянную инфу хранить в браузере? local storage? можно же подменить... каждый раз получать их от сервера при любом действии? мне кажется как-то тупо...
на клиенте все можно подменить, не только local storage. Если нужно определить человека со 100% вероятностью, то надо обращаться к БД. Насколько я знаю это не глупо
ну то есть клиент сделал какое-то действие на какой-то вопрос ответил, еще что-то. в ответе от сервера, например, помимо нового вопроса будут еще и эти "постоянные данные"? и так каждый раз?
Иван Волков: я думаю в роутинге react'а должна быть прослойка которая проверяет авторизован ли пользователь. Посмотрите в гугле запрос "react auth middleware"
Ernest Fayzullin: Про прослойки я в курсе. Я то не про то. Попробую еще раз объяснить.
пользователь авторизовался. Ему пришел токен плюс фио, фирма, балланс для отображения на странице. я это запихал в стор. Пользователь закрыл сайт, открыл заново, токен еще живет, а стор то пустой. и как мне отобразить фио, фирму и балланс? Вот я про этот момент спрашиваю...
Иван Волков: если я правильно понял, то может помочь fingerprintjs. С помощью этого пакета можно присвоить каждому пользователю его "отпечаток" браузера (на данный момент это вроде строка sha256). Если это поможет, то если вы в России по хорошему надо сделать на сайте предупреждение, типа "данные вашего браузера могут быть сохранены в нашей базе данных". Иначе есть риск что после 1 сентября вас могут оштрафовать на 75 тыс рублей за нарушение конфиденциальности)
Иван Волков: есть у реакта хуки, componentDidMount например, на странице профиля вызываешь на этот хук экшн который берет данные профиля и подставляешь, я тоже не особо профи но как я понимаю так оно и делается, всегда обращение к бд всё равно будет, на локалке хранят как правило токены и прочий мусор :D
Да, их можно подменить. Но если клиент "поверит" этим новым данным, то ничего страшного нет. А на сервере их проверка должна быть в любом случае. Можно использовать jsonwebtoken.