为什么从未调用 FeathersJS 身份验证挂钩?
Why is the FeathersJS auth hooks never invoked?
我有以下代码为我的 FeathersJS 服务设置了 4 个挂钩:
service.before({
all: [
auth.verifyToken(),
auth.populateUser(),
auth.restrictToAuthenticated(),
myCustomHook()
]});
最后一个钩子被调用,所以我知道我的代码总体上是正确的。
不过这三个auth-hook好像并没有被调用,这让我很疑惑。任何关于为什么会发生这种情况或我如何调试它的建议将不胜感激。
* 更多详情:*
我在单元测试中,我所做的就是:
app.service('/blockAddresses').find({})
我预计 auth.restrictToAuthenticated 挂钩会失败。我没有看到这样的失败,因此我得出结论,从未调用过 auth-hooks。当然,这个结论可能是错误的。
如果请求不是通过 REST 或 Socket.io API 发出的,将跳过 verifyToken
挂钩。它检查是否设置了 params.provider
。在单元测试中,我通常只是在 params
中通过测试 { user }
,但是如果你想验证一个令牌,你可以像这样设置提供者和令牌:
app.service('/blockAddresses').find({
provider: 'test',
token: 'myinvalidtoken'
})
我有以下代码为我的 FeathersJS 服务设置了 4 个挂钩:
service.before({
all: [
auth.verifyToken(),
auth.populateUser(),
auth.restrictToAuthenticated(),
myCustomHook()
]});
最后一个钩子被调用,所以我知道我的代码总体上是正确的。
不过这三个auth-hook好像并没有被调用,这让我很疑惑。任何关于为什么会发生这种情况或我如何调试它的建议将不胜感激。
* 更多详情:*
我在单元测试中,我所做的就是:
app.service('/blockAddresses').find({})
我预计 auth.restrictToAuthenticated 挂钩会失败。我没有看到这样的失败,因此我得出结论,从未调用过 auth-hooks。当然,这个结论可能是错误的。
如果请求不是通过 REST 或 Socket.io API 发出的,将跳过 verifyToken
挂钩。它检查是否设置了 params.provider
。在单元测试中,我通常只是在 params
中通过测试 { user }
,但是如果你想验证一个令牌,你可以像这样设置提供者和令牌:
app.service('/blockAddresses').find({
provider: 'test',
token: 'myinvalidtoken'
})