Угловое 5/6 хранилище проектной сессии - PullRequest
0 голосов
/ 04 июня 2018

В последнее время я думаю о том, как создать объект сеанса, например, использовать сеанс в традиционном проекте asp.net, поскольку это будет некоторая информация, которая будет постоянно использоваться через веб-приложение, например userId / appId / userRole, и мы этого не делаем.Я хочу извлекать информацию из базы данных каждый раз, когда использую их в качестве входных данных, поэтому я обнаружил, что возможные решения будут следующими:

1) Поместите их в локальное / сеансовое хранилище html5, однако я не уверен, чтоэто безопасно для публичного пользователя?Предположим, что я сохраняю userId как 1 в хранилище сеанса, позволит пользователю перейти и изменить это значение на 2 в своем локальном хранилище браузера, поэтому после этого при сохранении чего-либо и необходимости извлечения userId из хранилища сеанса он получит userId 1 или2?Или пользователь может пойти и удалить ключ / пару в хранилище сеанса, что приведет к ошибке в приложении при попытке его поиска

2) Сохраните их в угловой класс обслуживания в качестве объекта и используйтеэто как глобальный объект, будет ли это хорошей идеей?

Какое из вышеперечисленных решений лучше всего подойдет для решения моей проблемы в проекте Angular?Или у кого-нибудь есть умная идея?

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

Я работаю над библиотекой, чтобы сделать именно это.

https://github.com/adriandavidbrand/ngx-rxcache

RxCache - это библиотека, которая упрощает push-модель хранилищ в стиле Redux, а также поддерживает локальное хранилище для выживания браузераобновить.

0 голосов
/ 04 июня 2018

1) Вы можете хранить в html-хранилище, чтобы сделать его нечитаемым, вы можете использовать https://www.npmjs.com/package/ng-lz-string.Это также сжимает все данные и не позволит localStorage или sessionStorage достичь своей квоты.

2 и 3) Оба эти инструмента используют html localStorage / sessionStorage.Я просто использую html5 с компрессом lz-string.

...