Пул пользователей Cognito "username" отображается как идентификатор, а не как электронная почта, как это исправить? - PullRequest
0 голосов
/ 30 января 2020

Я использую пулы пользователей Amazon Cognito и хочу, чтобы пользователи регистрировались / входили со своими электронными письмами. Согласно онлайн-руководствам, при выборе этого варианта пул пользователей должен указывать пользователей со значением «username» в качестве их электронной почты, но это не так, я вижу «id», который также называется «sub», как поле "username"! он имеет формат UUID.

Любые идеи, как получить имя пользователя показывает электронную почту? ** Примечание: я говорю о показе пользователей из AWS консоли Cognito. Прилагается скриншот

enter image description here

1 Ответ

0 голосов
/ 30 января 2020

Здесь у вас есть пример.

auth.service.ts

вы должны выполнить метод входа в Cognito в вашей службе аутентификации. Примерно так:

login(username: string, password: string): Promise<CognitoUser|any> {
    return new Promise((resolve,reject) => {
      Auth.signIn(username,password)
      .then((user: CognitoUser|any) => {
        this.currentUserSubject.next(user);
        localStorage.setItem("currentUser", JSON.stringify(user));
        localStorage.setItem("token", user.signInUserSession.idToken.jwtToken);
        localStorage.setItem("userGroup", user.signInUserSession.idToken.payload['cognito:groups']);
        localStorage.setItem("userEmail", user.attributes.email);
        this.loggedIn = true;
        resolve(user);
      }).catch((error: any) => reject(error));
    });
  }

и затем в .ts вашего компонента вы должны выполнить вызов этого метода в конструкторе и сохранить в переменной аргумент userEmail, который вы получаете в localStorage из Cognito. :

constructor(
    private authService: AuthService,
  ) {
    this.authService.currentUser.subscribe(response => {
      this.currentUser = response;
    });

    this.userSessionName = localStorage.getItem('userEmail');
  }

Наконец, вам нужно отобразить переменную userSessionName в вас. html компонент:

<p>{{ userSessionName }}</p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...