AWS Cognito添加自定义属性

时间:2019-10-08 20:50:32

标签: node.js amazon-web-services amazon-cognito

大家好,所以我在这里遇到了困境。我试图向我的AWS Cognito用户添加自定义属性,但是每当出现此错误时,我都会收到以下错误:{"message":"Invalid user attributes: custom:expiration_date: Attribute does not exist in the schema.\n","code":"InvalidParameterException","time":"2019-10-08T20:29:26.050Z","requestId":"e088a624-95a3-4d42-a8d2-e2029e41f890","statusCode":400,"retryable":false,"retryDelay":30.119738164581644}但是我在AWS用户池中定义了以下属性,如屏幕截图所示。 enter image description here

我有以下代码来更新属性,但没有成功。

router.put("/set-user-expiration-date", async (req, res) => {
  if (res.locals.user && res.locals.user.role === "admin") {
    try {
      const date = req.body.expirationDate.toString();
      const params = {
        UserAttributes: [{ Name: "custom:expiration_date", Value: date }],
        UserPoolId: process.env.AWS_COGNITO_USER_POOL_ID,
        Username: req.body.username
      };
      await cognito.adminUpdateUserAttributes(params).promise();
      res.send("Successfully updated.");
    } catch (error) {
      res.send(error);
    }
  } else {
    res.status(401).send("No admin rights");
  }
});

这里的任何帮助都会很棒。谢谢:)

1 个答案:

答案 0 :(得分:0)

问题在于字符数限制。我在最大数量上有很多方法,这导致它出错。创建新属性并将最大值设置为256后,它就可以正常工作。