我正在尝试使用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 FeathersJS和Easy API Authorization with CASL and Feathers的博客文章。
关于javascript - feathers.js API中的用户权限,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47487195/