我正在构建一个带有认证和授权的FeathersJS应用。除了 "authentication "路由之外,我几乎在每条路由上都用before钩子手动处理了授权,因为你当然希望这条路由不受保护,这样每个人都能验证登录。我的问题是,当我调用认证路由时,它也会调用受保护的用户路由。当然这也是一个经常发生的问题,因为这条路由会被多个其他路由调用,但我在授权钩子中用
if(context.params.providers) {...}
当我调用认证路由的时候,钩子是和用户路由一起调用的,并且设置了一个提供者,如果我没说错的话,应该不是这样的。有没有办法过滤这个认证路由?
目前的认证代码假设你可以调用 "认证 "路径。users
get
与外部提供商合作(主要是为了确保返回到客户端的用户有任何的 after
钩子应用于过滤prune敏感数据。
需要注意的是,feathers为获取具有provider set的用户而进行的调用也在params中包含了用户,所以你可以使用该用户上下文来进行授权决策(例如,允许用户检索hisher自己的用户记录)。
https:/github.comfeathersjsfeathersblobmasterpackagesauthenticationsrcjwt.ts#L103。