首頁  >  問答  >  主體

node.js - nodejs 上用户访问页面权限问题

问题: 我需要判断当前用户是否,具有访问当前url的权限。但是接收访问的时候我无法判断是 页面的请求与接口访问,所以没办法来区分。

我的想法如下:

app.use(function (req, res, next) { 
    // 1. 获取url
    // 2. 根据url和当前用户配置判断 是否具有访问资格
})

如果有好的办法和建议的希望提供帮助。

PHP中文网PHP中文网2716 天前295

全部回覆(2)我來回復

  • 黄舟

    黄舟2017-04-17 14:33:33

    我也在摸索著在這方面實踐。

    憑藉我的經驗,試答如下:

    1. 設計上應該盡量把同一類api設定在一個base_path下,這樣可以在那個base_path上掛載一個中間件鑑權。

    2. 基於rbac的思想,我試過在你的想法的中間件那裡,獲取path,取得user.role。然後透過一個既定的map查詢。 accessible = PermitRoleMap[req.user.role][req.url.path]

    3. 在上述條件下,PermitRoleMap是一個二維的bool型陣列。也可以升級為允許儲存function。

    4. 最後,通常少許的一些個path上,還要有專門的權限處理中間件,或者處理步驟。

    另外我正在看
    https://github.com/bryandragon/mongoose-rbac
    https://github.com/OptimalBits/node_acl

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 14:33:33

    寫一個路由中間件應該可以實現你的需求

    中間件要做的事就是判斷目前使用者是否有權限

    回覆
    0
  • 取消回覆