Eoi*_*oin 11 authentication permissions node.js redux
使用node-redux堆栈.我们在客户端有动作创建者,后端有reducers + redux状态.我有以下提议来实现权限:
问题:
每种操作类型都与一组权限相关联,这意味着我们需要非常小心地创建我们的reducer,以便我们永远不会允许操作执行超出应有的操作.由于团队中有多个开发人员和一个大型应用程序,我不相信这就足够了.
问题:
Redux是"许可不可知".Redux只是一个用于协调更新应用程序状态的操作的框架; 它没有关于如何处理允许这些行动的意见或建议.
答案
是否有一个很好的资源/链接与关于使用redux处理权限的良好讨论.
这是一个.
授权是一个非常难以做出一般性的宣言,因为它在很大程度上取决于业务需求.你在使用角色吗?你只需要认证吗?用户可以拥有多个角色,还是只有一个?多个角色如何互动?这些不是一个答案的问题.
redux是否足以处理复杂的权限?
这就像询问JavaScript是否足以处理复杂的权限一样.它没有多大意义.
从一个角度来看,处理复杂权限是否"可能":是的.Redux不会限制您希望在操作级别实现的任何权限方案,因为操作只是调用dispatch的函数(另一个函数).您可以出于任何原因使用操作来停止调度呼叫.
另一方面,redux提供了一种开箱即用的机制,可以处理复杂的权限而无需任何其他模式或工具:不.Redux甚至没有尝试解决这个问题,这完全取决于你.
如果我们检查上面列出的权限是否有任何我没有提到的问题,是否有更好的方法来处理这个仍然使用redux?
你肯定没有提到的问题,因为你还没有完全概述你的实现.正如他们所说,魔鬼在于细节.如何完成您所描述的内容将决定您遇到的其他问题.
有没有更好的办法?"更好"就像你能得到的一样模糊.你对"更好"的参数是什么?在开发速度和运行时性能之间进行权衡,您更喜欢哪种?在服务器调用次数和权限粒度之间进行权衡,您更喜欢哪种?
您所说的只是您正在检查服务器上的操作.在不知道您的授权模型是什么的情况下,即使您精确定义"更好",也不可能说是否存在更好的方法,因为我们不知道您在做什么.
但是,鉴于您所拥有的信息,并假设执行检查服务器端既有必要又节省时间(另一个很大的假设),我会说(尽可能弱)是的,还会有其他问题.仅举几例:
客户端应用程序的一大胜利是服务器只完成它绝对必须完成的工作:提供数据(以json等最小格式),并验证更新数据的请求.您将承担运行所有客户的额外工作.这是减少编写REST api的样板的可疑权衡.
这也会锁定你的动作api和redux.REST api具有与客户端无关的优点.如果您从redux更改,或者只是重新组织您的操作,服务器上的REST api将不需要更改(或者至少不需要更改).这将使重构,即使你坚持使用redux,痛苦.这是否克服了编写REST API的痛苦是不可能的,但它需要考虑的事情.
| 归档时间: |
|
| 查看次数: |
1221 次 |
| 最近记录: |