使用 Cognito 放大:如何获取当前用户的电子邮件?

9gt*_*3wS 5 javascript amazon-cognito aws-amplify

我正在使用 AWS Amplify,并使用 Cognito 进行用户身份验证。

用户进入用户池,仅使用电子邮件地址和密码进行注册和登录。

当通过 Cognito 登录的用户导航到某个页面时,我希望检索他们的电子邮件地址。我怎样才能做到这一点?

我可以使用此代码检索一些用户数据(我使用的是 javascript/Angular):

import Auth from '@aws-amplify/auth';
...

ngOnInit(){
  Auth.currentAuthenticatedUser().then((user)=>{
        console.log('user = ' + JSON.stringify(user.pool))      
 })
}
Run Code Online (Sandbox Code Playgroud)

电子邮件确实出现在响应中,但我还没有能够将电子邮件与返回的 JSON 隔离开来。

我试过浏览文档,但我还没有找到关于我可以添加的属性选项之类的信息currentAuthenticatedUser(),或者是否有另一种更清晰的方法(我假设有)。

编辑:它看起来像以下作品:

Auth.currentAuthenticatedUser().then((user) => {
  console.log('user email = ' + user.attributes.email);
});
Run Code Online (Sandbox Code Playgroud)

但我仍然希望更好地理解文档。我在一个随机的 github 问题中找到了这个解决方案,而不是官方文档。我可以在 AWS Amplify / Cognito 文档中的何处找到此解决方案?

Mat*_*ton -4

用户登录后,以下内容对我有用......

import { Auth, Amplify } from 'aws-amplify'

console.log(Auth.user.attributes.email)
Run Code Online (Sandbox Code Playgroud)