【发布时间】:2020-03-09 11:22:22
【问题描述】:
我正在使用 AWS Amplify,并使用 Cognito 进行用户身份验证。
用户进入用户池,只需使用电子邮件地址和密码进行注册和登录。
当通过 Cognito 登录的用户导航到某个页面时,我想检索他们的电子邮件地址。我该怎么做?
我可以使用此代码检索一些用户数据(我正在使用 javascript/Angular):
import Auth from '@aws-amplify/auth';
...
ngOnInit(){
Auth.currentAuthenticatedUser().then((user)=>{
console.log('user = ' + JSON.stringify(user.pool))
})
}
电子邮件确实出现在响应中,但我还无法将电子邮件与返回的 JSON 隔离开来。
我已经尝试过浏览文档,但我还没有找到关于可以添加到currentAuthenticatedUser() 的属性选项之类的信息,或者是否有另一种更清洁的方法(我假设有) .
编辑:它看起来像以下作品:
Auth.currentAuthenticatedUser().then((user) => {
console.log('user email = ' + user.attributes.email);
});
但我仍然希望更好地理解文档。我在一个随机的 github 问题中找到了这个解决方案,而不是官方文档。我可以在 AWS Amplify / Cognito 文档中的何处找到此解决方案?
【问题讨论】:
-
如果您发布 JSON 的结构并更改您不想显示给我们的任何数据,这将有所帮助。
-
我实际上认为 currentAuthenticatedUser 不一定是正确的方法——我只是还没有找到替代方法。返回的 JSON 数据不是我所期望的任何正确方法的干净 JSON。我希望这是一个相当普遍的要求,并且有一种更简洁的方法来做到这一点。
标签: javascript amazon-cognito aws-amplify