Автоматически получать новый токен после истечения срока его действия - PullRequest
0 голосов
/ 28 сентября 2018

Итак, здесь я делаю запрос на получение токена API, который после этого использую в функции входа в систему.Срок действия токена истекает через час, из-за чего сайт перестает работать.Я хочу получить новый токен автоматически по истечении часа, когда он истекает, чтобы обработать истечение срока действия старого токена, а также переопределить токен, сохраненный в хранилище сеанса.Кстати, я не использую Redux здесь.

componentDidMount(){
      let url1 = ``;

        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)
        });
    }

1 Ответ

0 голосов
/ 29 сентября 2018

Посмотрите на приведенный ниже код, где каждые 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)
        });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...