用户会话根本没有持久。刷新应用程序时,userPool.getCurrentUser()
返回null。第一次登录时,我可以让当前用户没有问题,并且一切正常。
我想念什么吗?在许多资源上,我发现人们将访问令牌保存在AsyncStorage中,但我没有这么做(我使用redux-persist保存它);但是据我了解,这无关紧要。
这是我获取当前用户的方式:
export async function retrieveCurrentUser() {
return new Promise((res, rej) => {
const cognitoUser = userPool.getCurrentUser()
if (cognitoUser != null) {
cognitoUser.getSession((err, session) => {
if (err) {
rej(err)
return
}
if (session.isValid()) {
buildUserObject(cognitoUser)
.then(user => {
const accessToken = session.getAccessToken().getJwtToken()
res({accessToken, user})
})
.catch(err => {
rej(err)
})
} else {
rej()
}
})
} else {
rej()
}
})
}