“Token de actualización automática (devolución de llamada)” Código de respuesta

Token de actualización automática (devolución de llamada)

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 actualización automática (devolución de llamada)

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

Respuestas similares a “Token de actualización automática (devolución de llamada)”

Preguntas similares a “Token de actualización automática (devolución de llamada)”

Más respuestas relacionadas con “Token de actualización automática (devolución de llamada)” en JavaScript

Explore las respuestas de código populares por idioma

Explorar otros lenguajes de código