我正在尝试使用admin,superadmin等用户角色创建一些REST API。
我试图通过使用feathers-permissions模块来实现此目的,但是没有可用的示例和互联网。你有没有处理过这样的任务?
我现在要做的是:
feathers generate app,然后feathers generate authentication。接下来我该怎么办?

最佳答案

在Feathers中实现权限和角色的秘诀是Hooks确实可以为您提供所需的一切,并具有所需的所有灵活性。确实不需要花费时间寻找单独的模块并学习其API。

将权限(通常只是字符串)存储在用户的数组中(或基于用户ID的单独的permissions服务),然后在before挂钩中检查是否允许用户执行挂钩的操作注册为(此处的权限称为messages::create),如果没有,则抛出Feathers error

const { Forbidden } = require('feathers-errors');

app.service('messages').hooks({
  before: {
    create: [ context => {
      // `params.provider` is set for any external access
      // usually we don't need to check permissions for internal calls
      const isExternal = !!context.params.provider;

      if(isExternal && !context.params.user.permissions.includes('messages::create')) {
        throw new Forbidden('You are not allowed to access this');
      }
    }]
  }
});


也可以使用任何现有的Node权限模块来实现此模式。 feathers-permissions是一个简单的模块,可以更轻松地执行此操作。

有关更多信息,请参阅有关Access Control Strategies in FeathersJSEasy API Authorization with CASL and Feathers的博客文章。

关于javascript - feathers.js API中的用户权限,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47487195/

10-09 22:26