为什么FeathersJS auth钩子永远不会被调用?

时间:2016-12-01 14:21:01

标签: node.js feathersjs

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

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

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

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

*更多详情:*

我在单位测试中,我所做的就是:

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

我希望来自auth.restrictToAuthenticated钩子的失败。我没有看到这样的失败,因此我得出结论,永远不会调用auth-hooks。当然,这个结论可能是错误的。

1 个答案:

答案 0 :(得分:3)

如果请求未通过REST或Socket.io API传递,则将跳过verifyToken挂钩。它会检查正在设置的params.provider。在单元测试中,我通常只在{ user }中传递测试params,但如果您想验证令牌,可以像这样设置提供者和令牌:

app.service('/blockAddresses').find({
  provider: 'test',
  token: 'myinvalidtoken'
})