我应该何时以及如何检查用户拥有哪个活动组织?
When and how should I check what active organisation a user has?
我正在构建一个使用 AngularJS 和 Ionic 作为前端的混合移动应用程序。
每个用户都属于一个组织。但是可以在服务器和不同的 Web 应用程序中更改用户所属的组织。
用户可以在网络应用中做一些事情:
- 获取有关组织的数据
- Post,放置和删除有关组织的数据
其中每一项都需要 API 调用以获取相关信息。
现在我的问题是,我应该何时以及如何检查用户属于哪个组织?
- 我是否应该在每次获取、post、放置和删除之前发送一个 API 调用以检查用户属于哪个组织?
- 如果是,那么组织此组织检查而又不会混淆我所有其他代码的好方法是什么?
听起来您想要获得的是仅当用户属于组织时才允许用户编辑等组织的权限。由于以下原因,这应该在服务器端完成:
- 它使访问控制与操作耦合,因此服务器可以防止不允许 reads/changes 即使客户端存在错误。
- 它阻止恶意用户完全绕过成员资格检查,如果客户端是执行规则的全部,他们就可以这样做。
- 它避免了您担心的 API 调用,这些调用需要不断地重新检查用户的成员资格,以及如果成员资格在检查和下一次调用之间发生变化时的竞争条件。
- 它同时处理您的 Ionic 客户端和您的其他 Web 客户端,并允许您在未来扩展到更多客户端,而无需每个客户端都重复检查逻辑。
- 同样,它允许您在一个地方修改您的权限逻辑,例如,如果您想要区分可以阅读组织的用户和可以编辑组织的管理员。
服务器稳定后,只有几个地方需要同步用户的成员资格:
- 在应用程序启动时,除非您保留上次使用的缓存,这就足够了。
- 在他们使用该应用程序时的某个时间表中,如果成员资格更改频繁到您希望快速同步。也许每当他们访问他们的组织列表时。
- 当用户在应用中执行某些操作以使缓存无效时,例如加入或离开组织。
- 当有关组织的 API 调用失败时,因为用户可能不再是成员。
我正在构建一个使用 AngularJS 和 Ionic 作为前端的混合移动应用程序。
每个用户都属于一个组织。但是可以在服务器和不同的 Web 应用程序中更改用户所属的组织。
用户可以在网络应用中做一些事情:
- 获取有关组织的数据
- Post,放置和删除有关组织的数据
其中每一项都需要 API 调用以获取相关信息。
现在我的问题是,我应该何时以及如何检查用户属于哪个组织?
- 我是否应该在每次获取、post、放置和删除之前发送一个 API 调用以检查用户属于哪个组织?
- 如果是,那么组织此组织检查而又不会混淆我所有其他代码的好方法是什么?
听起来您想要获得的是仅当用户属于组织时才允许用户编辑等组织的权限。由于以下原因,这应该在服务器端完成:
- 它使访问控制与操作耦合,因此服务器可以防止不允许 reads/changes 即使客户端存在错误。
- 它阻止恶意用户完全绕过成员资格检查,如果客户端是执行规则的全部,他们就可以这样做。
- 它避免了您担心的 API 调用,这些调用需要不断地重新检查用户的成员资格,以及如果成员资格在检查和下一次调用之间发生变化时的竞争条件。
- 它同时处理您的 Ionic 客户端和您的其他 Web 客户端,并允许您在未来扩展到更多客户端,而无需每个客户端都重复检查逻辑。
- 同样,它允许您在一个地方修改您的权限逻辑,例如,如果您想要区分可以阅读组织的用户和可以编辑组织的管理员。
服务器稳定后,只有几个地方需要同步用户的成员资格:
- 在应用程序启动时,除非您保留上次使用的缓存,这就足够了。
- 在他们使用该应用程序时的某个时间表中,如果成员资格更改频繁到您希望快速同步。也许每当他们访问他们的组织列表时。
- 当用户在应用中执行某些操作以使缓存无效时,例如加入或离开组织。
- 当有关组织的 API 调用失败时,因为用户可能不再是成员。