0

我有以下代码为我的 FeathersJS 服务设置了 4 个钩子:

 service.before({
      all: [
    auth.verifyToken(),
    auth.populateUser(),
    auth.restrictToAuthenticated(),
    myCustomHook()
]});

最后一个钩子被调用,所以我知道我的代码总体上工作正常。

但是,这三个 auth-hooks 似乎没有被调用,这让我感到困惑。任何有关为什么会发生这种情况或如何调试它的建议将不胜感激。

* 更多细节: *

我在一个单元测试中,我所做的就是:

app.service('/blockAddresses').find({})

我预计 auth.restrictToAuthenticated 钩子会失败。我没有看到这样的失败,因此我得出结论,从未调用过 auth-hooks。当然,这个结论可能是错误的。

4

1 回答 1

3

verifyToken如果请求不是通过 REST 或 Socket.io API 发出的,则该挂钩将被跳过。它检查是否params.provider被设置。在单元测试中,我通常只是通过一个测试{ user }params但如果你想验证一个令牌,你可以像这样设置提供者和令牌:

app.service('/blockAddresses').find({
  provider: 'test',
  token: 'myinvalidtoken'
})
于 2016-12-02T17:18:08.747 回答