84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
问题: 我需要判断当前用户是否,具有访问当前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
写一个路由中间件应该能实现你的需求
中间件要做的事就是判断当前用户是否有权限