Я хочу внедрить клиент jwt в RN. Получение нового токена работает правильно, но когда токен истек, и я хочу обновить токен, он не работает. Это мой код функции Get:
let result = await instance
.get(url)
.then(({data}) => {
if (data.error) {
return {data: data.message, error: true, redirect: false};
}
return {data: data.data, error: false, redirect: false};
})
.catch(err => {
if (err.response.status === 401) {
async () => {
let res = await this.RefreshToken().result;
if (res) {
return Get(url, withToken);
} else {
return {data: '', error: true, redirect: true};
}
};
} else {
return {data: 'Process Error', error: true, redirect: false};
}
});
В приведенном выше коде раздел «async ()» внутри catch делаетне работа.
Это моя функция RefreshToken:
export async function RefreshToken() {
try {
const ref_token = await SInfo.getItem('ref_token');
let result = await instance
.post(
'/refresh_token/',
qs.stringify({
refresh: ref_token,
}),
)
.then(({data}) => {
if (!data.error) {
SInfo.setItem('token', data.token.access, {});
SInfo.setItem('ref_token', data.token.refresh, {});
return {result: true, token: data.token.access};
} else {
return {result: false, token: ''};
}
})
.catch(error => {
return { result: false, token: '' };
});
}
}
Я не знаю, в чем проблема.