我如何能够检查是否使用了认证途径?

问题描述 投票:0回答:1

我正在构建一个带有认证和授权的FeathersJS应用。除了 "authentication "路由之外,我几乎在每条路由上都用before钩子手动处理了授权,因为你当然希望这条路由不受保护,这样每个人都能验证登录。我的问题是,当我调用认证路由时,它也会调用受保护的用户路由。当然这也是一个经常发生的问题,因为这条路由会被多个其他路由调用,但我在授权钩子中用

if(context.params.providers) {...}

当我调用认证路由的时候,钩子是和用户路由一起调用的,并且设置了一个提供者,如果我没说错的话,应该不是这样的。有没有办法过滤这个认证路由?

authentication feathersjs
1个回答
0
投票

目前的认证代码假设你可以调用 "认证 "路径。users get 与外部提供商合作(主要是为了确保返回到客户端的用户有任何的 after 钩子应用于过滤prune敏感数据。

需要注意的是,feathers为获取具有provider set的用户而进行的调用也在params中包含了用户,所以你可以使用该用户上下文来进行授权决策(例如,允许用户检索hisher自己的用户记录)。

https:/github.comfeathersjsfeathersblobmasterpackagesauthenticationsrcjwt.ts#L103。

© www.soinside.com 2019 - 2024. All rights reserved.