React Cognito 用户池 - 客户端试图写入未经授权的属性

React Cognito User Pool - A client attempted to write unauthorized attribute

我正在用头撞墙试图解决这个问题。我的反应应用程序中有以下代码。我需要为用户添加一些方法来添加 unit/apt 号码,所以我添加了一个自定义属性。

一切正常,但是当我包含 apt_number: this.state.unitNumber, 时,出现错误 {code: "NotAuthorizedException", name: "NotAuthorizedException", message: "A client attempted to write unauthorized attribute"}

我确实进入了我的设置并使属性可写(我尝试使用 Unitapt number 的属性)

这是我的代码:

const receivedNewUser = await Auth.signUp({
  username: this.state.email,
  password: this.state.password,
  attributes: {
    phone_number: this.state.phone,
    address: this.state.streetAddress,
    birthdate: this.state.dob,
    locale: this.state.zipCode,
    given_name: this.state.fname,
    family_name: this.state.lname,
    apt_number: this.state.unitNumber,
  },
});

这是怎么回事?

您需要添加 custom: 作为属性名称的前缀。

您的代码应为:

const receivedNewUser = await Auth.signUp({
  username: this.state.email,
  password: this.state.password,
  attributes: {
    phone_number: this.state.phone,
    address: this.state.streetAddress,
    birthdate: this.state.dob,
    locale: this.state.zipCode,
    given_name: this.state.fname,
    family_name: this.state.lname,
    'custom:apt_number': this.state.unitNumber,
  },
});