【发布时间】:2016-02-25 12:44:12
【问题描述】:
使用 node-redux 堆栈。我们在客户端有 action creators,在后端有 reducers + redux state。 我有以下实现权限的建议:
- 操作是在客户端创建的,即使是经过身份验证的用户,这些操作也可能是恶意的。
- 动作被发送到服务器。
- 请求在服务器端进行身份验证,并确定用户权限。
- 这些操作通过位于节点服务器内部的 redux 中间件。
- 中间件根据为操作类型指定的权限检查用户权限。
- 如果用户对操作具有正确的权限,那么 reducer 会创建一个新的 redux 状态(它也存在于服务器上)。
问题:
每个动作类型都与一组权限相关联,这意味着我们需要非常小心地创建我们的 reducer,这样我们就不会允许动作做超出其应有的事情。由于团队中有多个开发人员和一个大型应用程序,我不相信这已经足够了。
问题:
【问题讨论】:
-
您希望通过在服务器上保留操作和状态来保护什么,而不是仅仅保护服务器公开的任何 REST 端点?
-
服务器上使用的减速器将是我们客户端应用程序当前使用的减速器。以这种方式做事意味着我们构建的前端 reducer 足以在服务器端持久化状态。选项二是为我们的操作创建一个休息 api。这会减慢我们的速度,并意味着我们定义的每个操作都有更多样板。
标签: node.js authentication permissions redux