AWS пул пользователей + cognito: невозможно авторизоваться после входа в систему без второго вызова - PullRequest
0 голосов
/ 10 марта 2020

Я использую vue js и подключаюсь к aws пулу пользователей через амплификацию, используя
Auth.federatedSignIn();
После того, как пользователь из aws успешно расширит гостевой интерфейс, они будут перенаправлены обратно на мою домашнюю страницу (Приложение. vue ниже).
Я пытаюсь получить аутентифицированного пользователя при создании страницы, но он выдает «не аутентифицирован».

Я пытаюсь снова вызвать функцию (или обновить sh страницу), и пользователь может быть найден.

Я также пытаюсь использовать setTimeout, чтобы добавить задержку, но Кажется, vue не обновляет страницу, которую я не вижу на экране моего currentUser.

Что будет лучшим способом получения аутентифицированного пользователя сразу после обратного вызова?

App.vue
<template>
  <div id="app">
    <v-btn @click="getAgain()">Get again</v-btn> #just a button to call again, and it able to get the user
    <h1 v-if="currentUser">user id : {{currentUser}}</h1>
  </div>
</template>

<script>
  import { Auth } from "aws-amplify";
  export default {
    name: 'app',
    components: {
    },
    data() {
      return {
        currentUser: null
      }
    },
    created() {
      Auth.currentAuthenticatedUser()
        .then(user => {
          this.currentUser = user;
          console.log(user);
        })
        .catch(e => {});
    },
    methods: {
      getAgain() {
        Auth.currentAuthenticatedUser()
          .then(user => {
            this.currentUser = user;
          })
          .catch(e => {});
      }
    }
  }
</script>

1 Ответ

0 голосов
/ 13 марта 2020

Вы можете прослушать событие входа в систему и получить извлечение пользователя после его запуска

  Hub.listen('auth', ({ payload: { event, data } }) => {
    if (event === 'signIn') {
      Auth.currentAuthenticatedUser()
        .then(user => {
          this.currentUser = user;
          console.log(user);
        })
        .catch(e => {console.log(e)});
    }
  });

Ссылка: https://github.com/aws-amplify/amplify-js/issues/4621

...