问题:授权是否应该是原子操作?
让我解释一下。
用户A正在进行API调用以查看实体。此调用需要两个步骤。
同时,用户B正在打电话来修改实体。新实体用户B发布不仅向实体添加新信息,还从授权用户列表中删除用户A.此调用需要两个步骤。
如果授权不是原子的,后端可以像这样处理请求。
这是有问题的,因为用户A会收到他无权查看的信息。
这是一个重大问题,还是我抓住稻草。
答案 0 :(得分:1)
理论上,除非请求 - 响应周期是原子的,否则您将始终具有此竞争条件。
我认为您的担忧如下:
即使在这里,如果A对数据的请求是在另一个非常慢的线程上,你仍然会有竞争。
您有两种解决方案:
如果您使用的是事务服务器,您可以在一个工作单元中进行撤销和更新。
另一种方法是B的编辑具有不同的访问权限,因此A看不到新的东西,但继续看到旧的东西。
答案 1 :(得分:0)
这不是一个重要问题。
即使事件没有同时发生,如果B尚未更新,A也可以查看信息。在撤消视图权限之前,用户始终可以查看信息。