//编码
app.use('/login', {
async create(data, params) {
data.strategy = 'local';
return authentication.create(data, params);
}
});
//配置
"local": {
"usernameField": "username",
"passwordField": "password"
}
我在我的登录API中使用authentication.create方法,当我尝试登录时,我得到了这个错误响应
{
"name": "NotAuthenticated",
"message": "Invalid login",
"code": 401,
"className": "not-authenticated",
"errors": {}
}
//请求
curl --location --request POST 'http://localhost:3030/login'
--header 'Content-Type: application/json'
--data-raw '{
"username": "uname",
"password": "123456"
}'
用户名和密码是正确的,这在我的本地机器(macOS(中有效,只有当我在测试环境(AWS EC2中的ubuntu 20(中运行时才会出错。它们都指向AWS EC2实例内的同一数据库(mySQL 5(。是什么导致了这个问题?
在Windows和PM2的身份验证配置选项中提到,username
字段需要转义,因为它也是一个环境变量:
"local": {
"usernameField": "\username",
"passwordField": "password"
}
在即将发布的版本5中,这将不再是必要的。