我正在尝试使用admin,superadmin等用户角色创建一些REST API。
我试图通过使用feathers-permissions
模块实现这一目标,但没有工作示例和互联网。你有没有处理过这样的任务?
我现在做的是:
feathers generate app
然后feathers generate authentication
。接下来我该怎么办?
答案 0 :(得分:2)
在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的任何现有权限模块实现。有关详情,请参阅有关Access Control Strategies in FeathersJS和Easy API Authorization with CASL and Feathers。
的博客文章