Angular 5/6 项目会话存储

Angular 5/6 project session storage

最近我在考虑如何像在传统 asp.net 项目中使用会话一样维护会话对象,因为这将是一些信息 这将不断地通过 Web 应用程序使用,例如 userId/appId/userRole,我们不想每次使用这些作为输入时都从数据库中检索信息,到目前为止,我发现可能的解决方案是:

1) 将它们放入 html5 local/session 存储中,但是我不确定是否 这对 public 是安全的 用户?假设我在会话存储中将 userId 保存为 1, 用户会在他的本地浏览器存储中将此值修改为 2,因此之后在保存某些内容并需要从会话存储中获取 userId 时,它会获取 userId 1 还是 2?或者用户会去删除会话存储中的 key/pair,这会导致应用程序在尝试查找它时出错

2) 将它们作为对象保存到 angular 服务 class 中,并像全局对象一样使用它,这是个好主意吗?

以上哪种解决方案最能解决我在 Angular 项目中的问题?或者谁有更好的主意?

1) 您可以存储在 html 存储中以使其不可读,您可以使用 https://www.npmjs.com/package/ng-lz-string 。这也将压缩所有数据,并且不会让 localStorage 或 sessionsStorage 达到它们的配额。

2 和 3) 这些都是利用 html localStorage/sessionStorage 的工具。我只是将 html5 与 lz-string compress decompress 一起使用。

我正在开发一个库来做这件事。

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

RxCache 是一个库,它简化了 Redux 风格商店的推送模型,还支持本地存储以在浏览器刷新后继续存在。