Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

93
Visualizações
El componente no se vuelve a procesar en la solicitud de seguimiento después de la actualización del token

Este es mi axios-hoook.js y estoy usando el paquete axios-hooks .

 import useAxios from 'axios-hooks'; import axios from 'axios'; import LocalStorageService from './services/local-storage.service'; import refreshToken from './refresh-token'; axios.defaults.baseURL = 'http://localhost:3000/api/v1'; axios.defaults.transformResponse = [ (responseData) => { const { data, error } = JSON.parse(responseData); return error || data; }, ]; // request interceptor to add token to request headers axios.interceptors.request.use( async (config) => { const token = LocalStorageService.getAccessToken(); if (token) { config.headers = { authorization: token, }; } return config; }, (error) => Promise.reject(error) ); // response interceptor intercepting 401 responses, refreshing token and retrying the request axios.interceptors.response.use( (response) => response, (error) => { const { config } = error; if (error.response?.status === 401 && !config._retry) { config._retry = true; refreshToken(LocalStorageService.getRefreshToken()) .then((res) => { const { accessToken } = res.data.data; LocalStorageService.setAccessToken(accessToken); return axios(config); }) .catch((err) => { if (err.response.status === 401) { LocalStorageService.setUser(null); window.location.href = '/login'; } return Promise.reject(err); }); } return Promise.reject(error); } ); export default useAxios;

Este es el Course.jsx donde se está utilizando.

 const Course = () => { const [{ data: courses = [] }, refetchCourse] = axiosHook(ApiConfig.COURSE.GET_COURSES.url); return ( <Datatable entity={entity} columns={courseColumns} rows={courses} deleteRow={handleDeactivate} viewRow={handleView} /> ) }

Imagen

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

En los documentos de axios-hooks hay un enlace a un ejemplo de trabajo para implementar una función de token de actualización. Se ejecuta en CodeSandbox en este enlace https://codesandbox.io/s/axios-hooks-authentication-zyeyh .

Compare eso con su ejemplo y encontrará la razón por la cual el suyo no funciona.

about 4 years ago · Juan Pablo Isaza Relatório

0

Hubo un error en mi código. No estaba devolviendo la promesa.

 axios.interceptors.response.use( (response) => response, (error) => { const { config } = error; if (error.response?.status === 401 && !config._retry) { config._retry = true; return refreshToken(LocalStorageService.getRefreshToken()) // this line .then((res) => { const { accessToken } = res.data.data; LocalStorageService.setAccessToken(accessToken); return axios(config); }) .catch((err) => { if (err.response.status === 401) { LocalStorageService.setUser(null); window.location.href = '/login'; } return Promise.reject(err); }); } return Promise.reject(error); } );
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda