我有以下代码,为FeathersJS服务设置了4个钩子:
service.before({
all: [
auth.verifyToken(),
auth.populateUser(),
auth.restrictToAuthenticated(),
myCustomHook()
]});
调用最后一个钩子,所以我知道我的代码整体工作正常。
然而,似乎没有调用三个auth-hooks,这让我很困惑。任何关于为什么会发生这种情况或如何调试它的建议将不胜感激。
*更多详情:*
我在单位测试中,我所做的就是:
app.service('/blockAddresses').find({})
我希望来自auth.restrictToAuthenticated钩子的失败。我没有看到这样的失败,因此我得出结论,永远不会调用auth-hooks。当然,这个结论可能是错误的。
答案 0 :(得分:3)
如果请求未通过REST或Socket.io API传递,则将跳过verifyToken
挂钩。它会检查正在设置的params.provider
。在单元测试中,我通常只在{ user }
中传递测试params
,但如果您想验证令牌,可以像这样设置提供者和令牌:
app.service('/blockAddresses').find({
provider: 'test',
token: 'myinvalidtoken'
})