【发布时间】:2021-04-02 08:48:55
【问题描述】:
我有一个 Angular 11 项目,我在其中使用 AWS Amplify (aws-amplify v3.3.26),并且使用 Cognito 用户池来管理用户。我已经设置了托管 UI,并且没有使用任何自定义属性。一切正常,我已经在用户池的用户属性中选择了读写权限的所有属性。
我正在使用以下代码来获取 cognitoUser 对象:-
Auth.currentAuthenticatedUser()
.then((currentUser) => {
console.log('The currentUser => ', currentUser);
Auth.currentUserInfo()
.then((res) => {
console.log('Here are the current user info! =>', res);
})
.catch((err) => {
console.log('Current user info failed to fetch', err);
});
})
.catch((err) => {
console.log(err);
});
return;
}
根据AWS Amplify docs,我应该能够在 cognitoUser 对象中获取属性。但我没听懂。
这就是我得到的全部(还要注意会话为空,不确定这意味着什么):-
如您所见,对象中没有“属性”键。
我还注意到有一个可用的 Auth.currentUserInfo() 方法,而我的控制台日志只是导致一个空对象。
正如您在此处看到的,我已经为用户池客户端定义中的所有属性设置了所有必需的权限,并且我没有任何自定义属性:-
目前我将姓名和电子邮件作为必需属性存储,所有用户都有。但我无法访问它。我能够看到深深嵌套在 cognitoUser 对象 (cognitoUser.signInUserSession.idToken.payload.email) 中的电子邮件,但仍然找不到 name 属性。我想获取列出当前用户所有可用属性的整个属性对象。
我错过了什么?
【问题讨论】:
-
嗯,不知道发生了什么,但我在网络上的 aws 管理控制台中搞砸了一堆东西,我认为我做的其中一件事情已经解决了。现在我正在接收属性。我不完全确定,但这可能与身份池有关?很抱歉,我无法准确指出我在这里做了什么,但我现在看到了用户对象中的属性键。 ://
标签: angular amazon-web-services amazon-cognito aws-amplify