基于Angluar ui-router的权限管理
来源:互联网 发布:linux 终端快捷键 编辑:程序博客网 时间:2024/06/06 10:44
在前后端分离的系统中,前端肯定也需要对权限进行控制,查看用户是否具有操作的权限。
angular基于ui-router实现系统权限控制
这篇文章说明了如何利用ui-router解决系统控制的问题。但是这篇文章没有解决登录后刷新的问题,而且有时候权限会跳转的很混乱。解决办法是,在路由控制监听stateChangestart的时候,利用preventDefault的方式,就能解决刷新的问题了。同时,将权限的判断放在stateChangeSuccess中进行。具体代码如下:
1 $rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) { 2 //必须登录 3 if (!authService.isLogin && toState.name.indexOf('auth') != 0) { 4 event.preventDefault(); 5 authService.createSession().then(function (data) { 6 $state.go(toState); 7 }, function (err) { 8 9 $state.go('auth.login'); 10 // $location.path($rootScope.localUrls.login); 11 }); 12 } 13 });
在此,authService是用来控制登录和权限的。如果用户没有登录,将调用authService.createSession函数。 authService.createSession的目的是通过读取cookie或者从服务器获取session进行认证,判断用户是否在登录期间。如果是允许登录则用户跳转到刷新的url下,否则系统跳转到登录界面。
1 $rootScope.$on('$stateChangeSuccess', function (event, to, toParams, froms, fromParams) { 2 var permission = to.permission; 3 if (permission !== undefined) { 4 var per = authService.hasPermission(permission) 5 if (!per) { 6 $state.go('auth.unAuthorized'); 7 } 8 } 9 });
authService.hasPermission用来查看用户是否具有权限,如果没有则跳转到未授权的页面。
0 0
- 基于Angluar ui-router的权限管理
- 学习 ui-router - 管理状态
- 学习 ui-router - 管理状态
- ui-router的使用
- 基于角色的权限管理
- 基于角色的权限管理
- 基于角色的权限管理
- angluar的下拉刷新
- 学习angular ui-router - 管理状态
- 学习angular ui-router - 管理状态
- angularJs模块ui-router之状态管理
- 学习 ui-router (一): 管理状态
- angularjs-ui-router的使用
- UI-Router的路由事件
- AngularJS的UI-Router学习
- 关于AngularJS的ui-router
- 【权限管理】基于shiro的权限管理开发实现
- 【权限管理】基于shiro的权限管理开发实现
- 浅谈SQL SERVER中事务的ACID
- URAL-1627-Join(生成树计数模板)
- mysql安装,mysql远程登录
- jQuery遍历
- c++指针实例说明
- 基于Angluar ui-router的权限管理
- linux 文件操作
- zynq-mpsoc系列之用petalinux生成BOOT.bin文件
- 转载--认识迅雷界面引擎
- 皮尔逊相关系数的计算(python代码版)
- 第七章 参数估计与假设检验
- 转义字符 通用字符名 字符char wchar_t
- 文件IO操作之文件锁fcntl()函数
- Spring中的事件监听机制在项目中的应用