Node.js 如何使用环回保护不同角色的属性
我只是想知道如何将属性访问权限限制为仅$owner角色。例如,在我的例子中,我有一个笑话,其中有一个作者。作者以用户为基础。我想让其他“作者”/用户看到是谁创造了这个笑话,但他们不应该能够看到作者的电子邮件,只有当作者是笑话本身的$owner时,才可以显示他们的电子邮件,只是为了这个案例 查看内置用户模型,您可以看到他们使用隐藏功能来隐藏密码,但将其用于电子邮件也会隐藏$owner的电子邮件,这不是我想要的 如果有什么不清楚,请告诉我Node.js 如何使用环回保护不同角色的属性,node.js,loopbackjs,Node.js,Loopbackjs,我只是想知道如何将属性访问权限限制为仅$owner角色。例如,在我的例子中,我有一个笑话,其中有一个作者。作者以用户为基础。我想让其他“作者”/用户看到是谁创造了这个笑话,但他们不应该能够看到作者的电子邮件,只有当作者是笑话本身的$owner时,才可以显示他们的电子邮件,只是为了这个案例 查看内置用户模型,您可以看到他们使用隐藏功能来隐藏密码,但将其用于电子邮件也会隐藏$owner的电子邮件,这不是我想要的 如果有什么不清楚,请告诉我 提前感谢您可以创建自己的角色解析程序。有关示例,请参见。确定
提前感谢您可以创建自己的角色解析程序。有关示例,请参见。确定用户后,只需添加您自己的逻辑。注册并检查当前用户是否为当前用户
注意:覆盖所有返回笑话的端点可能有点复杂。但是还有其他方法吗?要修改输出/结果,您可以使用afterRemote挂钩,如下所示。输出/结果存储在中 当调用类似于
GET时,“findById”钩住GET请求http://myModel/id
。如果请求中未包含id,请使用“查找”,例如GEThttp://myModel
。请注意,在“find”的情况下,返回的实例(笑话)通常不仅仅是一个,而是在一个对象数组中
Joke.afterRemote('findById', function(ctx, joke, next) {
//your code
});
var currentUser=context.req.accessToken.userId
如果(!(currentUser==crook.userId))
,则:删除ctx.result.email代码>
ctx.result.email=''代码>
- 循环遍历属性并将它们传输到新的变量(电子邮件除外),然后将该新变量保存为结果:
ctx.result=newVar代码>
接受,因为这也是我目前选择的解决方案。我对“受保护”的财产提出了请求。看,它不应该是远程的吗?因为我们正在删除结果的属性。
Joke.afterRemote('findById', function(ctx, joke, next) {
//your code
});