Express 基于Auth0作用域授权FeatherJS服务

Express 基于Auth0作用域授权FeatherJS服务,express,auth0,feathersjs,Express,Auth0,Feathersjs,我在feathers.js API中有一个用户服务。我想使find方法仅对已读取:users范围集的经过身份验证的用户可用 我使用expressjwt作为身份验证的中间件。 我已经尝试使用express jwt authz进行授权,但我不能,因为req在钩子中不可用快速jwt库在req.user中设置范围 用法JWT身份验证中间件使用 JWT。如果令牌有效,将使用JSON对象设置req.user 解码后供以后的中间件用于授权和访问 控制 有没有一种方法可以访问钩子中access_令牌中的作用域

我在feathers.js API中有一个用户服务。我想使find方法仅对已读取:users范围集的经过身份验证的用户可用

我使用
expressjwt
作为身份验证的中间件。 我已经尝试使用
express jwt authz
进行授权,但我不能,因为
req
在钩子中不可用<代码>快速jwt库在req.user中设置范围

用法JWT身份验证中间件使用 JWT。如果令牌有效,将使用JSON对象设置req.user 解码后供以后的中间件用于授权和访问 控制

有没有一种方法可以访问钩子中access_令牌中的作用域

我希望能够做到以下几点:

module.exports = {
  before: {
    all: [],
    find: [ authorize(['read:users']) ],
    get: [ authorize(['read:users'])],
    create: [ authorize(['write:users']) ],
    update: [ authorize(['write:users'])   ],
    patch: [ authorize(['write:users'])  ],
    remove: [ authorize(['write:users'])  ]
  }
};

通过添加一个中间件来解决这个问题,该中间件将req.user数据添加到req.scope

我的
src/middleware/index.js
文件

const addUserToReq = function(req, res, next) {
  req.feathers.user = req.user; next();
};

module.exports = function (app) {
  app.use(checkJwt); // express-jwt logic
  app.use(addUserToReq);
};
然后在钩子里我可以像这样访问这些信息

module.exports = function(expectedScopes) {
  return context => {
      let scopes = context.params.user.scope;
    }
  };
};