Comments (8)
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.
Hey @chobo2, you can easily provide your own retry condition via the retryCondition
parameter
from axios-retry.
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.
I have same question
from axios-retry.
@chobo2 timer(setInterval) maybe is a good idea,thanks!
from axios-retry.
@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.
@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.
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)
- Create a Security Policy HOT 1
- Success axios interceptors fired multiple times HOT 7
- [TypeScript]Unable to import names HOT 2
- Inconsistent Behavior of `isNetworkOrIdempotentRequestError` Function HOT 1
- Requiring cjs is broken since the last version (4.0.0)
- TypeError: axiosRetry is not a function in v4.0.0 HOT 11
- Module parse failed: Unexpected token (24:20) HOT 1
- Retry not working on HTTP 502 HOT 3
- How to handle errors HOT 2
- Combining `axios-retry` with other interceptors HOT 1
- [Feature request]onMaxRetryTimesExceeded to allow user to emit a custom error after retries done
- Provide option to trigger retry from successful (200) response in Axios's response interceptors HOT 4
- Do we still need `fixConfig`?
- Attach a unique id with request
- Axios-retry swallows the error response HOT 3
- Exponential delay has unnecessary final sleep HOT 2
- Introduce "axiosRetry.linearDelay"
- FormData not work HOT 1
- Abort during retry causes uncaught exception HOT 3
- Duplicated URL params HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from axios-retry.