From 9e7f26007f2ee41bc17da6886d9f56358277b05a Mon Sep 17 00:00:00 2001 From: Namkhai B Date: Tue, 12 Apr 2022 13:57:33 -0500 Subject: [PATCH] fix(request): Refresh token on Invalid CSRF token --- src/lib/request.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lib/request.ts b/src/lib/request.ts index f03285c..6a0ab30 100644 --- a/src/lib/request.ts +++ b/src/lib/request.ts @@ -54,6 +54,8 @@ export const initDeezerApi = async (arl: string): Promise => { return data.results.SESSION; }; +let token_retry = 0; + // Add a request interceptor instance.interceptors.response.use(async (response: Record) => { if (response.data.error && Object.keys(response.data.error).length > 0) { @@ -63,8 +65,10 @@ instance.interceptors.response.use(async (response: Record) => { } else if (response.data.error.code === 4) { await delay.range(1000, 1500); return await instance(response.config); - } else if (response.data.error.GATEWAY_ERROR) { - getApiToken(); + } else if (response.data.error.GATEWAY_ERROR || (response.data.error.VALID_TOKEN_REQUIRED && token_retry < 15)) { + await getApiToken(); + // Prevent dead loop + token_retry += 1; return await instance(response.config); } }