“Token de rafraîchissement automatique (rappel)” Réponses codées

Token de rafraîchissement automatique (rappel)

function refreshToken(store, cb) {
    if (store.state.auth.isRefreshing) {
        const chained = store.state.auth.refreshingCall.then(cb);
        store.commit('auth/setRefreshingCall', chained);
        return chained;
    }
    store.commit('auth/setRefreshingState', true);
    const refreshingCall = Axios.get('get token').then(({ data: { token } }) => {
        store.commit('auth/setToken', token)
        store.commit('auth/setRefreshingState', false);
        store.commit('auth/setRefreshingCall', undefined);
        return Promise.resolve(token);
    }).then(cb);
    store.commit('auth/setRefreshingCall', refreshingCall);
    return refreshingCall;
}
Inquisitive Ibis

Token de rafraîchissement automatique (rappel)

Axios.interceptors.response.use(response => response, error => {
    const status = error.response ? error.response.status : null

    if (status === 401) {

        return refreshToken(store, _ => {
            error.config.headers['Authorization'] = 'Bearer ' + store.state.auth.token;
            error.config.baseURL = undefined;
            return Axios.request(error.config);
        });
    }

    return Promise.reject(error);
});
Inquisitive Ibis

Réponses similaires à “Token de rafraîchissement automatique (rappel)”

Questions similaires à “Token de rafraîchissement automatique (rappel)”

Plus de réponses similaires à “Token de rafraîchissement automatique (rappel)” dans JavaScript

Parcourir les réponses de code populaires par langue

Parcourir d'autres langages de code