1

// 代码

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)。是什么导致了这个问题?

4

1 回答 1

1

在 Windows 和 PM2的身份验证配置选项中提到,该username字段需要转义,因为它也是一个环境变量:

"local": {
  "usernameField": "\\username",
  "passwordField": "password"
}

在即将发布的第 5 版中,这将不再需要。

于 2021-03-23T04:10:24.530 回答