Git Product home page Git Product logo

Comments (8)

chobo2 avatar chobo2 commented on July 29, 2024 1

@falstack

I never figured out how to do this and sort of moved away from all this. The one problem I found with interceptors was if you got a page and you got like 5 ajax requests firing at once.

If the token is expired then the request will fail and the access token will be sent but if you got like 5 of them firing all at the same time they all might try to send the 1 access token back which after the 1st request would be deleted, and thus the rest of my requests would fail as they could not find the access token and thus my front end code would logged them out.

You would need some sort of queuing or something like that to make it work, I just decided to switch a timer.

If my token expires after 20 mins, I set a timer for 19 mins to just get a new token and access token.

from axios-retry.

yns01 avatar yns01 commented on July 29, 2024

Hey @chobo2, you can easily provide your own retry condition via the retryCondition parameter

from axios-retry.

chobo2 avatar chobo2 commented on July 29, 2024

@yns01

I will have to look in more detail, but how I setup my axios right now, I am using interceptor on response, if a 401 comes back, it will automatically through the interceptor send the refresh token and if successful it will resend the original request.

How would axios-retry and the interceptor place nice together, so axios-retry would only resend if the interceptor was able to re authenticate the user?

I don't want to have to put the same authentication code in every axios call.

from axios-retry.

falstack avatar falstack commented on July 29, 2024

I have same question

from axios-retry.

falstack avatar falstack commented on July 29, 2024

@chobo2 timer(setInterval) maybe is a good idea,thanks!

from axios-retry.

chobo2 avatar chobo2 commented on July 29, 2024

@chobo2 timer(setInterval) maybe is a good idea,thanks!

Yep use setInterval not setTimeout like I did my accident the first time around and was wondering why it did not refresh after the first time.

from axios-retry.

oferRounds avatar oferRounds commented on July 29, 2024

@mawrkus following this question, one possible solution would be hold all retries until we manually say it’s ok now (i.e., the token was refreshed) (by invoking a method). Is there some way to do this?

from axios-retry.

nwaughachukwuma avatar nwaughachukwuma commented on July 29, 2024

Hey @chobo2, you can easily provide your own retry condition via the retryCondition parameter

@yns01 it doesn't appear retryCondition can handle an async request. I was trying to refresh my firebase idToken using the logic below

async function customErrorHandler(error: AxiosError): Promise<boolean> {
   if (error.response && error.response.status == 400) {
      const idToken = await auth.currentUser?.getIdToken(true)
      axios.defaults.headers.common['Authorization'] = `Bearer ${idToken}`
      return true
   } else {
      return axiosRetry.isRetryableError(error)
   }
}

Any idea how to go about this?

from axios-retry.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.