如何使用AWS Cognito保持用户会话

时间:2018-07-26 11:11:31

标签: javascript amazon-web-services react-native amazon-cognito

用户会话根本没有持久。刷新应用程序时,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()
        }
    })
}

0 个答案:

没有答案