gpt4 book ai didi

feathersjs - 将羽毛服务方​​法限制为外部用户,但允许对内部调用进行任何查询

转载 作者:行者123 更新时间:2023-12-04 03:02:37 25 4
gpt4 key购买 nike

我想限制对 Feathers 服务方法的调用,以使用 associateCurrentUser 进行外部调用。

我还想允许服务器调用这个服务方法而不限制它。

用例是通过这个服务然后客户端使用一个锁表,所有客户端都可以看到所有锁,偶尔服务器应该清除这个表中的废弃行。行放弃可能发生在网络故障等情况下。当服务器删除数据时,应该向客户端发出正常的 Feathers 删除事件。

我想这应该是 associateCurrentUser 和 disallow 钩子(Hook)的混合,但我什至无法开始尝试这个,因为我不知道它会如何组合在一起。

请问如何实现这一点?

更新:

我找到了这个答案 User's permissions in feathers.js API来自 Daff,这意味着如果钩子(Hook)的 context.params.provider 为空,则调用是内部的,否则是外部的。任何人都可以确认这是否真的在所有情况下都是如此,好吗?

从我自己的测试来看似乎是这样,但我不知道是否有任何特殊情况可能会来咬我。

最佳答案

如果调用是外部的 params.provider将设置为已使用的传输方式(当前为 restsocketioprimus ,记录为 hereherehere )。

如果在服务器内部调用,则实际上并没有什么魔力。它将是您传递的任何内容 params .如果你什么都不通过,它将是 undefined如果你通过(或合并)hook.params在 Hook 中,它将与调用原始方法的方法相同。

// `params` is an empty object so `params.provider` will be `undefined`
app.service('messages').find({})

// `params.provider` will be `server`
app.service('messages').find({ provider: 'server' })

// `params.provider` will be whatever the original hook was called with
function(hook) {
hook.app.service('otherservice').find(hook.params);
}

关于feathersjs - 将羽毛服务方​​法限制为外部用户,但允许对内部调用进行任何查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47824036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com