跨多个用户使用IndexedDB数据

e7arh2l6  于 2022-12-09  发布在  IndexedDB
关注(0)|答案(3)|浏览(365)

我试图确定为我的应用程序创建“保存”功能的最佳方式,并考虑使用IndexedDB来实现这一点。我阅读了一些关于IndexedDB的文档,但我一直无法找到我的问题的答案:
在我的应用程序中,用户拥有登录权限,可以对数据进行更改。这里的想法是,在点击Save后,这些数据将存储在某个地方,其他登录的用户将能够看到这些更改,并在需要时进行其他修改,等等。现在,我的问题是,鉴于其他用户需要能够看到另一个用户所做的更改,IndexedDB是否适合于此?或者IndexedDB是否基于会话,其中的更改只能在本地查看?
如果这些更改被限制在本地查看,那就意味着我唯一的选择就是将这些更改存储在后端,并且用户每次保存数据都要访问数据库,这似乎不是一个可行的解决方案。
1.点击“保存”后,向后端发送一个标志,表示这是一次保存
1.检查该条目是否存在,如果不存在,则将其作为插入存储在数据库中(无需验证)。将标志添加到数据库中。如果该条目存在,则将其存储为更新。
1.如果用户提交(不同于保存),则执行数据验证并更新DB中的条目。
如果IndexedDB不是一个选项,这是我能想到的最好的方法。理论上,有没有更好的方法来实现这一点?提前感谢。

8yoxcaq7

8yoxcaq71#

indexedDB是按源和浏览器客户端存储的。如果您在同一台计算机上有多个用户,每个用户使用相同的浏览器,并且访问相同的源,那么是的,您可以轻松地在同一个indexedDB数据库中存储不同用户的信息。

  • 它将是不安全的,这是不可避免的。任何打开devtools的人都可以检查数据库的内容。
  • 任何用户都可以出于任何原因随时删除数据库中的所有数据,这也是无法避免的。
1wnzp6jl

1wnzp6jl2#

如果同一台计算机上有多个用户,每个用户都使用同一个浏览器,并且访问同一个源,那么可以轻松地将不同用户的信息存储在同一个indexedDB数据库中。
你如何设置系统,以允许这种行为?你创建一个公共文件夹中的所有用户在文件系统?我看到, IndexedDB 数据存储在这里:C:\Users\XXXXXX\AppData\Local\Google\Chrome\User Data\Default\IndexedDB

klr1opcd

klr1opcd3#

只在indexedDB中存储加密数据,为每个用户设置密钥来区分记录,并为不同的用户绑定不同的解密密钥。
这样,即使是其他用户也可以看到记录行,但永远无法读取除了他自己的记录之外的真实的内容。

相关问题