2

我是 feathersjs 的新手 我正在使用它构建一个后端服务器,并且需要添加 2 种本地身份验证方式,通过电子邮件或移动设备我已经添加了新的本地config/default.json身份,如下所示

"local-mobile": {
      "usernameField": "mobile",
      "passwordField": "password"
    },

这是我的 authentication.js 文件

const { AuthenticationService, JWTStrategy } = require('@feathersjs/authentication');
const { LocalStrategy } = require('@feathersjs/authentication-local');
const { expressOauth } = require('@feathersjs/authentication-oauth');

module.exports = app => {
  const authentication = new AuthenticationService(app);

  authentication.register('jwt', new JWTStrategy());
  authentication.register('local', new LocalStrategy());
  authentication.register('local-mobile', new LocalStrategy());

  app.use('/authentication', authentication);
  app.configure(expressOauth());
};

src/authentication

但是当我使用邮递员向身份验证端点发送发布请求时,正文如下

{
    "strategy":"local-mobile",
    "mobile":".......",
    "password":"........"

}

回应来了

{
    "name": "NotAuthenticated",
    "message": "Invalid authentication information",
    "code": 401,
    "className": "not-authenticated",
    "errors": {}
}

任何的想法 ?

4

1 回答 1

2

如果您想允许通过authenticate端点进行身份验证,还必须将策略添加到您的(羽毛聊天示例)中的authStrategies 配置设置中:config/default.json

{
  "authentication": {    
    // ...
    "authStrategies": [
      "jwt",
      "local",
      "local-mobile",
    ]
  }
  // ...
}
于 2019-09-30T19:29:13.130 回答