Redux、动作、授权
Redux, actions, authorization
我目前正在使用 redux 和 redux-thunk 中间件。
关于动作调度的控制,例如:
- 用户是否有足够的权限执行此操作?
- 提示用户确认他的操作(对于破坏性操作)
我相信将此类控件放在异步操作 (thunk) 中是可行的方法,因为:
- 它让我的代码保持干燥(许多 components/views 可以触发
动作,而所述动作只有一个 actionCreator)
- 这是应用程序中 "something happens" 之前的最后一个点。让它感觉像是进行此类控制的战略场所。
问题
我正在寻找其他 redux 用户的反馈。我还算
对这个决定充满信心,但几乎没有反馈(并且正在
junior dev) 让我怀疑。这是正确的方法吗
授权控制使用redux时?
把授权控制器改成怎么样
中间件。它会将 auth 控件保存在一个地方,而不是在每个 actionCreator 中复制它。
编辑
当深入研究这种可能性时,它很快变得具有挑战性,因为中间件最初只接收 (dispatch, getState)
,这意味着授权中间件需要 "know" 正在调度哪个动作(或正在使用哪个 actionCreator ), 需要一个 hacky-ish 设置并最终证明不可靠的东西。
其他点数
- 是的,这是客户端。是的,我们也进行服务器端检查。
- 我知道这些类型的控件不应该在我的 store/reducers 中。他们需要是纯粹的。
我认为您可以进行设置。 Thunk 是编排程序流的好方法。还有其他中间件,如 redux-saga,它更复杂一些,但据我了解你想做这样的事情(伪代码)?
function authorizeAndTriggerAction(forUser) {
return function (dispatch) {
return authorizeUser().then(
action => dispatch(concreteAction(forUser)),
error => dispatch(notAuthorized(forPerson, error))
);
};
}
这可以用 thunk 来完成。
我目前正在使用 redux 和 redux-thunk 中间件。
关于动作调度的控制,例如:
- 用户是否有足够的权限执行此操作?
- 提示用户确认他的操作(对于破坏性操作)
我相信将此类控件放在异步操作 (thunk) 中是可行的方法,因为:
- 它让我的代码保持干燥(许多 components/views 可以触发 动作,而所述动作只有一个 actionCreator)
- 这是应用程序中 "something happens" 之前的最后一个点。让它感觉像是进行此类控制的战略场所。
问题
我正在寻找其他 redux 用户的反馈。我还算 对这个决定充满信心,但几乎没有反馈(并且正在 junior dev) 让我怀疑。这是正确的方法吗 授权控制使用redux时?
把授权控制器改成怎么样 中间件。它会将 auth 控件保存在一个地方,而不是在每个 actionCreator 中复制它。
编辑 当深入研究这种可能性时,它很快变得具有挑战性,因为中间件最初只接收(dispatch, getState)
,这意味着授权中间件需要 "know" 正在调度哪个动作(或正在使用哪个 actionCreator ), 需要一个 hacky-ish 设置并最终证明不可靠的东西。
其他点数
- 是的,这是客户端。是的,我们也进行服务器端检查。
- 我知道这些类型的控件不应该在我的 store/reducers 中。他们需要是纯粹的。
我认为您可以进行设置。 Thunk 是编排程序流的好方法。还有其他中间件,如 redux-saga,它更复杂一些,但据我了解你想做这样的事情(伪代码)?
function authorizeAndTriggerAction(forUser) {
return function (dispatch) {
return authorizeUser().then(
action => dispatch(concreteAction(forUser)),
error => dispatch(notAuthorized(forPerson, error))
);
};
}
这可以用 thunk 来完成。