84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
问题: 我需要判断当前用户是否,具有访问当前url的权限。但是接收访问的时候我无法判断是 页面的请求与接口访问,所以没办法来区分。
我的想法如下:
app.use(function (req, res, next) { // 1. 获取url // 2. 根据url和当前用户配置判断 是否具有访问资格 })
如果有好的办法和建议的希望提供帮助。
认证高级PHP讲师
我也在摸索着在这方面实践。
凭借我的经验,试答如下:
设计上应该尽可能把同一类api设置在一个base_path下,这样可以在那个base_path上挂载一个中间件鉴权。
基于rbac的思想,我试过在你的想法的中间件那里,获取path,取得user.role。然后通过一个既定的map查询。accessible = PermitRoleMap[req.user.role][req.url.path]
accessible = PermitRoleMap[req.user.role][req.url.path]
在上述条件下,PermitRoleMap是一个二维的bool型数组。也可以升级为允许储存function。
最后,通常少许的一些个path上,还要有专门的权限处理中间件,或者处理步骤。
另外我正在看https://github.com/bryandragon/mongoose-rbachttps://github.com/OptimalBits/node_acl
写一个路由中间件应该能实现你的需求
中间件要做的事就是判断当前用户是否有权限
我也在摸索着在这方面实践。
凭借我的经验,试答如下:
设计上应该尽可能把同一类api设置在一个base_path下,这样可以在那个base_path上挂载一个中间件鉴权。
基于rbac的思想,我试过在你的想法的中间件那里,获取path,取得user.role。然后通过一个既定的map查询。
accessible = PermitRoleMap[req.user.role][req.url.path]
在上述条件下,PermitRoleMap是一个二维的bool型数组。也可以升级为允许储存function。
最后,通常少许的一些个path上,还要有专门的权限处理中间件,或者处理步骤。
另外我正在看
https://github.com/bryandragon/mongoose-rbac
https://github.com/OptimalBits/node_acl
写一个路由中间件应该能实现你的需求
中间件要做的事就是判断当前用户是否有权限