Посмотрите на приведенный ниже код, где каждые 59 минут извлекайте userToken, предполагая, что срок действия токена составляет 1 час в вашем вопросе.Что мы делаем, это делаем вызов fetchToken, как только компонент монтируется, и запускаем таймер, который будет повторять этот вызов через 59 минут.Как только компонент демонтируется, мы очищаем и очищаем таймер.(Примечание: 59 минут - это только предположение, вы можете получить токен в любое время до истечения срока действия)
componentDidMount(){
let url1 = ``;
this.fetchToken();
this.refetchTokenId = setInterval(this.fetchToken, 59 * 60 * 1000)
}
componentWillUnmount() {
clearInterval(this.refetchTokenId)
}
fetchToken = () => {
fetch(url1,{
method: 'POST'
})
.then((response) => response.json())
.then((responseJson) => {
this.setState({authToken: responseJson.auth_token}, ()=>{
sessionStorage.setItem('auth-token', this.state.authToken);
})
})
.catch((error) => {
console.log(error)
});
}