检查环回 ACL 的查询参数以允许仅“查找”用户数据

checking query arguments for loopback ACLs to allow `find`ing the user's data only

我在 docker 容器中有两个独立的环回服务 运行,它们相互通信。

一个处理 Users,另一个处理一些与用户关联的 UserData。它们通过两台服务器上指向另一台服务器的远程连接器连接。

当当前 User 更新服务器 A 上的详细信息时,它需要更新服务器 B 上的一些用户数据。身份验证是使用 JWT 令牌完成的,我设法让服务器 A 转发给它的令牌到服务器 B。

我遇到的问题是,服务器 A 上的 user.data() 被传递到远程连接器,并在服务器 B 上变成类似 /api/UserData/find?filter[where][userId]=2 的查询,但服务器 B 上的 ACL 不允许在 find 上查询,因为这样您就可以通过更改 where 子句来获取每个人的数据。

有没有办法创建一个动态角色,让用户根据自己的数据进行过滤? (即,我能否以某种方式检查角色解析器中的查询参数?)

我这样做的方法是创建一个角色来检查 context.remotingContext.req 中的参数并验证当前用户的位置是否包含在参数中。