lol*_*ola 5 permissions angularjs
亲爱的堆栈溢出,
我正在尝试使用angular-permission来实现基于权限的身份验证,但我不知道在哪里定义那些通过API从我的后端检索的权限,这需要基于令牌的访问.
首先,让我介绍一下我的应用程序的外观.在我的后端,我的系统门户,我定义了允许调用不同API的权限.权限不会一直在变化.仅当我添加新功能(API)时,才会添加新权限.例如.permission1:api1,api2,api3 permission2:api4,api5,api6 permission3:api7,api8,api9
在前端,客户登录前端Web门户并自行创建自定义角色,将一些权限组合在一起,例如:admin:permission1,permission2,permission3 auditor:permission 3
角度权限文档说(https://github.com/Narzerus/angular-permission/blob/development/docs/1-manging-permissions.md#multiple-permissions)我可以使用PermissionStore.defineManyPermissions来定义权限用户登录后从API检索.这一切都很清楚.
所以我有两个模块.一个是处理用户登录的身份验证模块.另一个是Permission模块,它处理权限验证.在Permission模块.run()阶段,我定义了这样的权限:
permission1: api1,api2,api3
permission2:api4,api5,api6
permission3:api7,api8,api9
Run Code Online (Sandbox Code Playgroud)
但是在应用程序的引导期间,此模块已经加载,并且arrayPermissions将为空,因为用户尚未登录.
我尝试使用oclazyload从Authentication模块的登录控制器加载Permission模块,这实际上有效,但如果用户刷新/重新加载他们的页面,将不再加载Permission模块.
我是webdevelpment的新手,也是angularjs的新手.短短几个月的经历.我不知道我是否以完全错误的方式做到这一点.我的问题是:
用于查找权限列表的API应该要求身份验证吗?因为我需要将这些身份验证放在UI路由器路由上.无论如何,任何人都可以看到它 如果我不应该保护该API,那么我的问题就解决了.
如果我应该保护我的api,我应该如何解决上面描述的问题,哪些是定义angular-perrmission的权限以及如何使用API来检索权限.
我希望我能清楚地描述我的问题.非常感谢任何帮助或指导.
问候,萝拉
小智 1
我正在将角度许可与角度卫星一起使用。PermRoleStore或者PermPermissionStore需要处于run阻塞状态。您可以将数据添加到 JSON WEB TOKEN,并像我一样在块中使用它run。
$auth.getPayload()此函数从 localStorage 中的 JWT 返回有效负载。在该有效负载中,它包含我在后端保存的带有角色密钥的数据。我希望这对您的问题有所帮助。
.run(function (PermRoleStore, $auth, Yollar) {
PermRoleStore
.defineRole('ADMIN', function () {
if($auth.getPayload()) {
if ($auth.getPayload().data.role === 'ADMIN') {
return true;
}
else {
return false;
}
}
else {
return false;
}
});
PermRoleStore
.defineRole('MODERATOR', function () {
if($auth.getPayload()) {
if ($auth.getPayload().data.role === 'MODERATOR') {
return true;
}
else {
return false;
}
}
else {
return false;
}
});
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1557 次 |
| 最近记录: |