我的 Feathers 应用程序需要能够具有两种 JWT 身份验证策略。对于users
服务,我需要有,例如,all: [authenticate('carrier')]
而不是all: [authenticate('jwt')]
在我的钩子中。对于其余的服务,authenticate['jwt']
是需要的。
为此,我在 authentication.js 中注册了一个自定义策略,CarrierStrategy
如下所示:
module.exports = function auth(app) {
const authentication = new AuthenticationService(app)
// register all of the strategies with authentication service
authentication.register('carrier', new CarrierStrategy())
authentication.register('jwt', new JWTStrategy())
// register the authentication service with your app
app.use('/api/authentication', authentication)
}
在 config/default.json 中,我还注册了这个策略,如下所示:
authStrategies: ["carrier", "jwt"]
CarrierStrategy 需要使用一些自定义逻辑稍微不同地处理传入的 Authorization 标头。
当我使用 Postman 发送对该服务的请求时,即localhost:3030/users
在标头中使用 JWT 令牌时,我收到以下错误。
Invalid authentication information (strategy not allowed in authStrategies)'
如果这是向应用程序添加自定义策略的正确方法,请指导我。