我正在尝试创建一些具有管理员、 super 管理员等用户 Angular 色的 REST API。
我试图通过使用feathers-permissions模块来实现这一点,但没有有效的示例和互联网。你曾经处理过这样的任务吗?
我现在做的是:
feathers 生成应用程序
,然后feathers 生成身份验证
。接下来我应该做什么?
最佳答案
在 Feathers 中实现权限和 Angular 色的秘诀是 Hooks真正提供您所需的一切以及您可能想要的所有灵 active 。实际上没有必要花时间寻找单独的模块并学习它的 API。
将权限(通常只是字符串)存储在用户的数组中(或基于用户 ID 的单独的权限
服务),然后存储在before
中钩子(Hook)检查是否允许用户执行钩子(Hook)注册的操作(这里的权限称为 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.js 的任何现有权限模块来实现。 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/