在登录时或更新用户属性后,我无法从AWS Cognito获取最新的用户信息。
我正在使用aws-amplify进行身份验证,并且注册和登录工作都很好。
该问题出现在我的个人资料页面上。我允许人们注册通知以及更改个人资料中的其他数据。我已经通过记录响应验证了在后端以及在控制台中成功进行了更改。
但是,当我调用Auth.currentAuthenticatedUser()时,我得到了以前缓存的信息。
在收到成功的响应后,如何检索更新的用户属性?
async () => {
const { email, given_name, family_name, preferred_username, "custom:notifyPredictRemind": customNotifyPredictRemind, "custom:notifyPredictResult": customNotifyPredictResult } = this.state;
let params = { email, given_name, family_name, preferred_username, "custom:notifyPredictRemind": customNotifyPredictRemind, "custom:notifyPredictResult": customNotifyPredictResult }
let updateResult = await Auth.updateUserAttributes(user, params) // returns SUCCESS
let user = await Auth.currentAuthenticaterUser()
}
我希望最后调用currentAuthenticaterUser返回更新的用户信息。有什么想法可以做到吗?谢谢。
答案 0 :(得分:1)
弄清楚了。有一个名为bypassCache的参数,您可以将其传递给currentAuthenticatedUser(),该参数将刷新用户的信息。对于初始登录和Cognito个人资料的更新很有用。
async () => {
const { email, given_name, family_name, preferred_username, "custom:notifyPredictRemind": customNotifyPredictRemind, "custom:notifyPredictResult": customNotifyPredictResult } = this.state;
let params = { email, given_name, family_name, preferred_username, "custom:notifyPredictRemind": customNotifyPredictRemind, "custom:notifyPredictResult": customNotifyPredictResult }
let updateResult = await Auth.updateUserAttributes(user, params) // returns SUCCESS
let user = await Auth.currentAuthenticaterUser({bypassCache: true}) // UPDATED, NOW WORKS
}