我是feathersjs新手,我正在使用它构建后端服务器,并且需要添加两种本地身份验证方式:通过电子邮件或移动设备
我已经将新的本地添加到 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
但是当我使用带有以下正文的 postman 向身份验证端点发送发布请求时
{
"strategy":"local-mobile",
"mobile":".......",
"password":"........"
}
回复即将到来
{
"name": "NotAuthenticated",
"message": "Invalid authentication information",
"code": 401,
"className": "not-authenticated",
"errors": {}
}
有什么想法吗?
最佳答案
如果您想允许通过 authenticate
端点进行身份验证,则还必须将该策略添加到 authStrategies configuration setting在您的 config/default.json
( feathers-chat example ) 中:
{
"authentication": {
// ...
"authStrategies": [
"jwt",
"local",
"local-mobile",
]
}
// ...
}
关于feathersjs - 需要在feathersjs中添加多个usernameField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58172708/