feathers.js API 中的用户权限
User's permissions in feathers.js API
我正在尝试创建一些具有管理员、超级管理员等用户角色的 REST API。
我试图通过使用 feathers-permissions
模块来实现这一点,但是有 none 工作示例和互联网。你有没有处理过这样的任务?
我现在做的是:
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.js 权限模块来实现。 feathers-permissions 是一个简单的模块,可以更轻松地做到这一点。
有关详细信息,另请参阅有关 Access Control Strategies in FeathersJS and Easy API Authorization with CASL and Feathers 的博客文章。
我正在尝试创建一些具有管理员、超级管理员等用户角色的 REST API。
我试图通过使用 feathers-permissions
模块来实现这一点,但是有 none 工作示例和互联网。你有没有处理过这样的任务?
我现在做的是:
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.js 权限模块来实现。 feathers-permissions 是一个简单的模块,可以更轻松地做到这一点。
有关详细信息,另请参阅有关 Access Control Strategies in FeathersJS and Easy API Authorization with CASL and Feathers 的博客文章。