跨多个用户使用 IndexedDB 数据

Using IndexedDB data across multiple users

我正在尝试确定为我的应用程序创建 "Save" 功能的最佳方法,并考虑过使用 IndexedDB 来实现这一点。我已经阅读了一些关于 IndexedDB 的文档,但我一直无法找到我的问题的答案:

在我的应用程序中,用户可以登录并可以更改数据。这里的想法是,在点击 Save 之后,这些数据将存储在某个地方,并且 其他登录的用户 将能够看到这些更改并在需要时进行其他修改,等。现在,我的问题是,考虑到其他用户需要能够看到另一个用户所做的更改,IndexedDB 是否适用于此?还是 IndexedDB 基于会话,更改只能在本地查看?

如果这些更改仅限于在本地查看,这意味着我唯一的选择是将这些更改存储在后端,并且访问数据库的次数与用户保存数据的次数一样多似乎不太可能一个可行的解决方案。在这种情况下,这是我的方法:

  1. 点击 "Save" 后,向后端发送一个标志,表示这是一次保存
  2. 检查条目是否存在,如果不存在,将其作为插入存储在数据库中(不验证)。将标志添加到数据库。如果该条目存在,则存储为更新。
  3. 如果用户提交(不同于保存)执行数据验证并更新数据库中的条目。

如果 IndexedDB 不是一个选项,这是我能想到的最佳方法。从理论上讲,是否有更好的方法来实现这一目标?提前致谢。

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

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

indexedDB只存储加密数据,设置key区分每个用户的记录,不同用户绑定不同的解密key

这样即使是其他用户也能看到记录行,但永远看不到自己记录以外的真实内容。

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

您如何设置系统以授予此行为?您为文件系统中的所有用户创建了一个公共文件夹? 我看到索引数据库数据存储在这里: C:\Users\XXXXXX\AppData\Local\Google\Chrome\User Data\Default\IndexedDB