Чрезмерное количество вызовов API для обновления токена - PullRequest
0 голосов
/ 26 сентября 2019

После прочтения нескольких руководств по обновлению токенов JWT мне все еще неясно, как должен работать поток вызовов API.

Вот мое понимание:

1) Клиент находится во владениитокена доступа и обновления токена.Он отправляет токен доступа api/getCustomerData.

2) Допустим, токен доступа истек.Сервер отвечает 401.

3) Клиент отвечает на запрос 401 токеном обновления на api/token.

4) Сервер отвечает новым маркером доступа после обновлениятокен все еще действителен.

5) Затем клиент отправляет новый запрос на api/getCustomerData с новым токеном доступа.

У меня сложилось впечатление, что это чрезмерное количество вызовов API, но яя не вижу учебник, который разъясняет способ сделать это более эффективно.В нынешнем виде кажется, что если я следую этому шаблону, каждый запрос API будет выглядеть так:

    const getCustomers = async () => {
    const config = {
        data: body,
        withCredentials: true,
        method: 'POST' as 'POST',
    }
    await axios(address + '/api/getCustomerData', config)
        .then((response) => {
            ...
        })
        .catch((error: any) => {
            const response = error.response;
            if (response) {
                if (response.status === 401) {
                    if (!failcount){
                       failcount++;
                       getCustomers();
                    }
                    else {
                       history.push('/login')
                    }
                }
            }
        })
    }
...