Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

React 项目中的权限控制需要做哪些事情? | HYPERS 前端团队博客 #36

Open
simonguo opened this issue Oct 26, 2017 · 2 comments

Comments

@simonguo
Copy link
Member

http://blog.hypers.io/2017/07/22/react-permission/

@xuminke
Copy link

xuminke commented Mar 30, 2018

👍
基本和我们目前项目的方案一致。
细节有一些不同,比如文中的6,这2个问题
1.不管路由有没有变化,都checkURL。缺点就是当同一个页面有很多数据交换时。会执行过多不必要的check
2.我们在顶层组件的DidMount里面获取用户权限数据,但这个顶层组件render没有实际的Dom加载,用{children}来加载子组件。不会有闪一下的问题。但是看了你们的方案,觉得我们这样做其实还是有一些考虑不周的。毕竟需要把获取数据都bind到各自子组件。

我更想知道不同页面的所有操作,是如何隐藏的,有什么简单的方法么?因为我们一开始并没有设计整个权限架构。。导致页面全部写完再套权限,要控制操作按钮的显示/隐藏有点不现实。。。。这块我们就直接和数据授权合并在一起,拦截action来做了。。。

@simonguo
Copy link
Member Author

@xuminke , 我们的会给大大小小的功能定义成模块, 模块有自己的独立唯一的 key, 如果是一个大的模块,下面可能还对应一个 routers:[]数组,对应可以访问的路由,用户在登录后就能拿到对应的的信息。
通过这些信息和你开发的 component 进行对应,如果不存在就不渲染。 你在开发的时候可以默认拥有所有的权限。 其实就是根据你当前的业务怎么去设计一个合理的数据结构来管理的组件。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants