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
寫一個路由中間件應該可以實現你的需求
中間件要做的事就是判斷目前使用者是否有權限