我目前正在使用redux和redux-thunk中间件。
当涉及到关于动作调度的控制时,例如:
- 用户是否有足够的权限执行此操作?
- 提示用户确认他的动作(破坏性动作)
我相信将此类控件放在异步操作(thunk)中是可行的方法,因为:
- 它使我的代码保持干燥(许多组件/视图可以触发动作,而所述动作只有一个 actionCreator)
- 这是应用程序中“发生某事”之前的最后一点。让它感觉像是进行此类控制的战略场所。
问题
我正在寻找其他 redux 用户的反馈。我对这个决定相当有信心,但是几乎没有反馈(并且是初级开发人员)让我怀疑。这是 使用 redux 时进行授权控制的正确方法吗?
将授权控制器制作成 中间件怎么样?它将身份验证控件保存在一个地方,而不是在每个 actionCreator 中复制它。
编辑 当深入研究这种可能性时,它很快变得具有挑战性,因为中间件最初只收到(dispatch, getState)
授权中间件需要“知道”正在调度哪个操作(或正在使用哪个 actionCreator)的意思,这需要一个 hacky-ish 设置和最终证明不可靠。
其他要点
- 是的,这是客户端。是的,我们还进行服务器端检查。
- 我知道这些类型的控件不应该出现在我的商店/减速器中。他们需要纯洁。