не удается получить имя пользователя с помощью Amplify Auth.currentAuthenticatedUser - PullRequest
1 голос
/ 23 февраля 2020

простите мой вопрос новичка, но я новичок в AWS усилить ... Я запустил веб-приложение с реакцией, и я могу войти в систему с помощью Cognito Facebook и Google, а также в обычной форме регистрации / входа.

Теперь я хочу сделать следующий шаг и показать приветственное сообщение, которое включает имя пользователя, вошедшего в систему ... должно быть очень простым:)

я использовал эту функцию

function checkUser() {  let user = Auth.currentAuthenticatedUser();  alert(user.username)  }

это не показывает мне имя пользователя! вместо этого он показывает следующее всплывающее сообщение enter image description here

Может кто-нибудь, пожалуйста, посоветуйте, как заставить его работать .. большое спасибо заранее:)

sofar мой код выглядит как это

import {Auth} from 'aws-amplify';
function checkUser() {
let user = Auth.currentAuthenticatedUser();
alert(user)  }

function signOut() {
Auth.signOut()
  .then(data => console.log(data))
  .catch(err => console.log(err))
}

function App() {
  return (
    <div className="App">
    <header className="App-header">
    <img src={logo} className="App-logo" alt="logo" />
        <p>
         This site is under Construction
        </p>
        <p>
        <button onClick={() => Auth.federatedSignIn()}>Sign In</button>
        <button onClick={checkUser}>Check User</button>
        <button onClick={signOut}>Sign Out</button>
        </p>
      </header>
    </div>
  );
}
export default App;

1 Ответ

1 голос
/ 23 февраля 2020

Это асинхронный вызов c:

async function checkUser() {
    let user = await Auth.currentAuthenticatedUser();  
    alert(user.username)
}

или

Auth.currentAuthenticatedUser()
    .then(user => alert(user.username))
    .catch(err => console.log(err));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...