我正在制作一个具有不同访问级别的 API,“客户端”可能只能读取。但“管理员”必须具有写入权限。每次检查不同的角色作为 Sails.js 中的策略,并在 req.session 中设置权限。
我只需要让“客户端”无法访问创建、更新和删除操作,因此我创建了一个具有这些 CRUD 操作的控制器并检查用户是否具有正确的角色。所有访问受限的操作都通过 routes.js 重定向到此控制器。
现在我的问题是,当我删除如下条目时: Category.destroy(req.param('id')); 给我 undefined 并且没有 done 方法。与文档中提到的不同,我设法通过创建这个来解决问题:
var deleted = Category.destroy(req.param('id'), function(err, status) {
if (status == 1){
res.json({message: 'Category is deleted'});
} else {
res.json({message: 'Oops, something went wrong'});
}
});
但是必须有另一种方法来将身份验证应用于这些基本操作。因为现在我必须编写所有动作。
我写的删除函数的代码有问题吗?是否可以应用策略并重定向到默认模型操作,就好像根本没有身份验证一样?