
Research
PyPI Package Disguised as Instagram Growth Tool Harvests User Credentials
A deceptive PyPI package posing as an Instagram growth tool collects user credentials and sends them to third-party bot services.
axios-refresh-me
Advanced tools
Axios Refresh Me is an Axios wrapper designed to handle refresh tokens and retry requests seamlessly. It simplifies the process of managing token expiration and retrying failed requests, ensuring a smoother user experience.
To install the package, use npm or yarn:
npm install axios-refresh-me
Axios Refresh Me uses a request observer to monitor requests and trigger the refresh handler when necessary. If the request fails due to a specified status code, the request observer will cancel all pending requests and refresh the token. After successfully refreshing the token, the request observer will retry the failed requests and the canceled requests automatically.
See the example below for a basic implementation of Axios Refresh Me.
import AxiosInstanceFactory from 'axios-refresh-me';
// Function to get the current token
function getToken() {
// Logic to get the current token
return 'current-token';
}
// Function to get a new token
async function refreshToken() {
// Logic to get a new token
const newToken = await new Promise((resolve) => {
setTimeout(() => {
resolve('new-token');
}, 1000);
});
// Remember to update the token in your token storage
updateToken(newToken);
}
// Register the request observer with custom options
AxiosInstanceFactory.use({
// Logic to get a new token
refreshHandler: refreshToken,
// Status codes to trigger the refresh handler, default is [401]
statusCodes: [401],
// Retry count for the requests after refreshing the token successfully, default is 1
retryCount: 1,
// The request observer uses abort signals to cancel the requests, set this option to true to combine the abort signals
// from the request observer and default signal from the Axios request, default is false
combineAbortSignals: false,
// Function to determine if the request should be retried, will override the statusCodes option, default is undefined
shouldRefresh: (error) => {
// Logic to determine if the request should be retried
return error.response?.status === 401;
},
});
AxiosInstanceFactory.interceptor.request.use((config) => {
// Logic to modify the request config before sending the request
config.headers['Authorization'] = `Bearer ${getToken()}`;
return config;
});
// Create an instance of AxiosClient
const instance = AxiosInstanceFactory.getInstance({
baseURL: 'https://api.example.com',
headers: {
'Content-Type': 'application/json',
},
// Or you can override the default options
interceptors: {
request: {
onFulfilled: (config) => {
config.headers['Authorization'] = `Bearer ${getToken()}`;
return config;
},
onRejected: (error) => {
// Handle error request
return Promise.reject(error);
},
},
response: {
onFulfilled: (response) => {
// Handle successful response
return response;
},
onRejected: (error) => {
// Handle error response
return Promise.reject(error);
},
},
},
});
// Example API call
// Retry if request failed with 401 status code
instance
.get('/data')
.then((response) => {
console.log('Data:', response.data);
})
.catch((error) => {
console.error('Error:', error);
});
This project is licensed under the MIT License.
D4r1inG
FAQs
Axios wrapper for refresh token and retry request
The npm package axios-refresh-me receives a total of 0 weekly downloads. As such, axios-refresh-me popularity was classified as not popular.
We found that axios-refresh-me demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
A deceptive PyPI package posing as an Instagram growth tool collects user credentials and sends them to third-party bot services.
Product
Socket now supports pylock.toml, enabling secure, reproducible Python builds with advanced scanning and full alignment with PEP 751's new standard.
Security News
Research
Socket uncovered two npm packages that register hidden HTTP endpoints to delete all files on command.