Не удается найти имя «атрибуты». Усиление аутентификации - PullRequest
0 голосов
/ 27 апреля 2020

Я добавил авторизацию в мое приложение angular, используя amplify add auth. После этого я добавил

"requiredAttributes": [
    "email",
    "custom:firstName",
    "custom:lastName"
],

к параметрам усиления / бэкенда / auth / XXX /. json

и

  Schema:

    -
      Name: email
      Required: true
      Mutable: true

    -
      AttributeDataType: "String"
      Mutable: true
      Name: firstName
      StringAttributeConstraints:
        MaxLength: 256
        MinLength: 1

    -
      AttributeDataType: "String"
      Mutable: true
      Name: lastName
      StringAttributeConstraints:
        MaxLength: 256
        MinLength: 1

для усиления / backend / auth / XXX / XXX-cloudformation-template.yml

После этого amplify push.

Я вижу эти пользовательские поля в консоли: enter image description here

но когда я пытаюсь отправить пользовательские поля, как это:

  import { Auth } from 'aws-amplify';

  ...

  signUp(email, password, firstName, lastName): Observable<any> {
    return fromPromise(Auth.signUp(
      email,
      password,
      attributes: {
        "custom:firstName": firstName,
        "custom:lastName": lastName
      }
    ));
  }

Компилятор TypeScript выдал эту ошибку:

Не удается найти имя 'attribute'.ts

Должно быть:

signUp(params: string | SignUpParams, ...restOfAttrs: string[]): Promise<ISignUpResult>

1 Ответ

0 голосов
/ 27 апреля 2020

Это мой обходной путь:

  signUp(username, password, firstName, lastName): Observable<any> {
    const signUpParams: any = {
      username,
      password,
      attributes: {
        'custom:firstName': firstName,
        'custom:lastName': lastName
      }
    };
    return fromPromise(Auth.signUp(
      signUpParams
    ));
  }
...