目前为我的反应应用程序使用 AWS Cognito 开发工具包。目前,在调用 API 时,我使用 ComponentWillMount 运行会话检查
componentWillMount() {
if (!this.props.authenticated) {
this.props.history.push('/auth/login');
} else {
getUserFromLocalStorage()
.then(data => {
console.log('getUserFromLocalStorage');
this.props.setUserToReduxState(data);
console.log(
'user sucess retrieved from local storage and usersettoreduxstate: ',
data
)
.then(console.log('after local test'))
})
.catch(() => {
logoutUserFromReduxState();
});
}
}
在 componentDidMount 中,我使用本地存储中的 JWT 令牌调用 API
componentDidMount() {
// calls API with localStage.jwtToken
this.loadData();
}
这在大多数情况下都有效,但是当令牌过期时,JWT 会被刷新,这一切都会得到处理,但是当最初调用 API 时,它会被旧的 JWT 调用。我可以看到新的 JWT 在 redux 中被刷新,但它在调用 API 之前被刷新。
是否有任何建议可以确保在进行每个 API 调用之前,在 API 调用中使用之前在 redux 中刷新和更新令牌?