@fctc/interface-logic 3.8.9 → 3.8.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/configs.js +103 -13
- package/dist/configs.mjs +103 -13
- package/dist/environment.js +103 -13
- package/dist/environment.mjs +103 -13
- package/dist/provider.js +103 -13
- package/dist/provider.mjs +103 -13
- package/package.json +1 -1
package/dist/configs.js
CHANGED
|
@@ -2276,12 +2276,10 @@ var axiosClient = {
|
|
|
2276
2276
|
timeout: 5e4,
|
|
2277
2277
|
paramsSerializer: (params) => new URLSearchParams(params).toString()
|
|
2278
2278
|
});
|
|
2279
|
-
instance.interceptors.request.use(async (
|
|
2280
|
-
const useRefreshToken =
|
|
2281
|
-
const useActionToken =
|
|
2282
|
-
const actionToken =
|
|
2283
|
-
console.log("config", config2);
|
|
2284
|
-
console.log("useRefreshToken", useRefreshToken);
|
|
2279
|
+
instance.interceptors.request.use(async (configReq) => {
|
|
2280
|
+
const useRefreshToken = configReq.headers["X-Use-Refresh-Token"] === "true";
|
|
2281
|
+
const useActionToken = configReq.headers["X-Use-Action-Token"] === "true";
|
|
2282
|
+
const actionToken = configReq.headers["X-Action-Token"];
|
|
2285
2283
|
let token = null;
|
|
2286
2284
|
if (useActionToken && actionToken) {
|
|
2287
2285
|
token = actionToken;
|
|
@@ -2290,14 +2288,109 @@ var axiosClient = {
|
|
|
2290
2288
|
token = await getToken?.();
|
|
2291
2289
|
}
|
|
2292
2290
|
if (token) {
|
|
2293
|
-
|
|
2291
|
+
configReq.headers["Authorization"] = `Bearer ${token}`;
|
|
2294
2292
|
}
|
|
2295
2293
|
if (database) {
|
|
2296
|
-
|
|
2294
|
+
configReq.headers["DATABASE"] = database;
|
|
2297
2295
|
}
|
|
2298
|
-
|
|
2299
|
-
return config2;
|
|
2296
|
+
return configReq;
|
|
2300
2297
|
}, Promise.reject);
|
|
2298
|
+
const buildRefreshUrl = () => {
|
|
2299
|
+
if (!config.refreshTokenEndpoint) {
|
|
2300
|
+
return `${getBaseUrl(config?.baseUrl)}${"/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`;
|
|
2301
|
+
}
|
|
2302
|
+
const ep = String(config.refreshTokenEndpoint);
|
|
2303
|
+
if (/^https?:\/\//i.test(ep)) return ep;
|
|
2304
|
+
const cleanBase = String(config?.baseUrl || "").replace(/\/$/, "");
|
|
2305
|
+
const cleanEp = ep.startsWith("/") ? ep : `/${ep}`;
|
|
2306
|
+
return `${cleanBase}${cleanEp}`;
|
|
2307
|
+
};
|
|
2308
|
+
instance.interceptors.response.use(
|
|
2309
|
+
(response) => handleResponse(response),
|
|
2310
|
+
async (error) => {
|
|
2311
|
+
const handleError3 = async (err) => {
|
|
2312
|
+
if (!err.response) return err;
|
|
2313
|
+
const { data } = err.response;
|
|
2314
|
+
if (data && data.code === 400 && ["invalid_grant"].includes(data.data?.error)) {
|
|
2315
|
+
await clearAuthToken();
|
|
2316
|
+
}
|
|
2317
|
+
return data;
|
|
2318
|
+
};
|
|
2319
|
+
const originalRequest = error.config;
|
|
2320
|
+
if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401, "ERR_2FA_006"].includes(
|
|
2321
|
+
error.response.data.code
|
|
2322
|
+
)) {
|
|
2323
|
+
if (isRefreshing) {
|
|
2324
|
+
return new Promise(function(resolve, reject) {
|
|
2325
|
+
failedQueue.push({ resolve, reject });
|
|
2326
|
+
}).then((newToken) => {
|
|
2327
|
+
originalRequest.headers["Authorization"] = "Bearer " + newToken;
|
|
2328
|
+
originalRequest.data = updateTokenParamInOriginalRequest(
|
|
2329
|
+
originalRequest,
|
|
2330
|
+
newToken
|
|
2331
|
+
);
|
|
2332
|
+
return instance.request(originalRequest);
|
|
2333
|
+
}).catch(async (err) => {
|
|
2334
|
+
if ((err.response?.status === 400 || err.response?.status === 401) && ["invalid_grant"].includes(err.response.data.error)) {
|
|
2335
|
+
await clearAuthToken();
|
|
2336
|
+
}
|
|
2337
|
+
});
|
|
2338
|
+
}
|
|
2339
|
+
const browserSession = await sessionStorage2.getBrowserSession();
|
|
2340
|
+
const refreshToken = await localStorage2.getRefreshToken();
|
|
2341
|
+
const accessTokenExp = await localStorage2.getAccessToken();
|
|
2342
|
+
isRefreshing = true;
|
|
2343
|
+
if (!refreshToken && (!browserSession || browserSession == "unActive")) {
|
|
2344
|
+
await clearAuthToken();
|
|
2345
|
+
} else {
|
|
2346
|
+
const payload = Object.fromEntries(
|
|
2347
|
+
Object.entries({
|
|
2348
|
+
refresh_token: refreshToken,
|
|
2349
|
+
grant_type: "refresh_token",
|
|
2350
|
+
client_id: config.config.clientId,
|
|
2351
|
+
client_secret: config.config.clientSecret
|
|
2352
|
+
}).filter(([_, v]) => !!v)
|
|
2353
|
+
);
|
|
2354
|
+
const refreshUrl = buildRefreshUrl();
|
|
2355
|
+
return new Promise(function(resolve) {
|
|
2356
|
+
import_axios.default.post(refreshUrl, payload, {
|
|
2357
|
+
headers: {
|
|
2358
|
+
"Content-Type": config.refreshTokenEndpoint ? "application/x-www-form-urlencoded" : "multipart/form-data",
|
|
2359
|
+
Authorization: `Bearer ${accessTokenExp}`
|
|
2360
|
+
}
|
|
2361
|
+
}).then(async (res) => {
|
|
2362
|
+
const data = res.data;
|
|
2363
|
+
await localStorage2.setToken(data.access_token);
|
|
2364
|
+
await localStorage2.setRefreshToken(data.refresh_token);
|
|
2365
|
+
import_axios.default.defaults.headers.common["Authorization"] = "Bearer " + data.access_token;
|
|
2366
|
+
originalRequest.headers["Authorization"] = "Bearer " + data.access_token;
|
|
2367
|
+
originalRequest.data = updateTokenParamInOriginalRequest(
|
|
2368
|
+
originalRequest,
|
|
2369
|
+
data.access_token
|
|
2370
|
+
);
|
|
2371
|
+
processQueue(null, data.access_token);
|
|
2372
|
+
resolve(instance.request(originalRequest));
|
|
2373
|
+
}).catch(async (err) => {
|
|
2374
|
+
if (err && (err?.error_code === "AUTHEN_FAIL" || err?.error_code === "TOKEN_EXPIRED" || err?.error_code === "TOKEN_INCORRECT" || err?.code === "ERR_2FA_006")) {
|
|
2375
|
+
await clearAuthToken();
|
|
2376
|
+
}
|
|
2377
|
+
if (err && err.response) {
|
|
2378
|
+
const { error_code } = err.response?.data || {};
|
|
2379
|
+
const { code } = err;
|
|
2380
|
+
if (error_code === "AUTHEN_FAIL" || code === "ERR_2FA_006") {
|
|
2381
|
+
await clearAuthToken();
|
|
2382
|
+
}
|
|
2383
|
+
}
|
|
2384
|
+
processQueue(err, null);
|
|
2385
|
+
}).finally(() => {
|
|
2386
|
+
isRefreshing = false;
|
|
2387
|
+
});
|
|
2388
|
+
});
|
|
2389
|
+
}
|
|
2390
|
+
}
|
|
2391
|
+
return Promise.reject(await handleError3(error));
|
|
2392
|
+
}
|
|
2393
|
+
);
|
|
2301
2394
|
instance.interceptors.response.use(
|
|
2302
2395
|
(response) => {
|
|
2303
2396
|
return handleResponse(response);
|
|
@@ -2317,7 +2410,6 @@ var axiosClient = {
|
|
|
2317
2410
|
if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401, "ERR_2FA_006"].includes(
|
|
2318
2411
|
error.response.data.code
|
|
2319
2412
|
)) {
|
|
2320
|
-
console.log("isRefreshing", isRefreshing);
|
|
2321
2413
|
if (isRefreshing) {
|
|
2322
2414
|
return new Promise(function(resolve, reject) {
|
|
2323
2415
|
failedQueue.push({ resolve, reject });
|
|
@@ -2339,7 +2431,6 @@ var axiosClient = {
|
|
|
2339
2431
|
const accessTokenExp = await localStorage2.getAccessToken();
|
|
2340
2432
|
isRefreshing = true;
|
|
2341
2433
|
if (!refreshToken && (!browserSession || browserSession == "unActive")) {
|
|
2342
|
-
console.log("222");
|
|
2343
2434
|
await clearAuthToken();
|
|
2344
2435
|
} else {
|
|
2345
2436
|
const payload = Object.fromEntries(
|
|
@@ -2350,7 +2441,6 @@ var axiosClient = {
|
|
|
2350
2441
|
client_secret: config.config.clientSecret
|
|
2351
2442
|
}).filter(([_, value]) => !!value)
|
|
2352
2443
|
);
|
|
2353
|
-
console.log("111");
|
|
2354
2444
|
return new Promise(function(resolve) {
|
|
2355
2445
|
import_axios.default.post(
|
|
2356
2446
|
`${config?.baseUrl}${config.refreshTokenEndpoint ?? "/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`,
|
package/dist/configs.mjs
CHANGED
|
@@ -2240,12 +2240,10 @@ var axiosClient = {
|
|
|
2240
2240
|
timeout: 5e4,
|
|
2241
2241
|
paramsSerializer: (params) => new URLSearchParams(params).toString()
|
|
2242
2242
|
});
|
|
2243
|
-
instance.interceptors.request.use(async (
|
|
2244
|
-
const useRefreshToken =
|
|
2245
|
-
const useActionToken =
|
|
2246
|
-
const actionToken =
|
|
2247
|
-
console.log("config", config2);
|
|
2248
|
-
console.log("useRefreshToken", useRefreshToken);
|
|
2243
|
+
instance.interceptors.request.use(async (configReq) => {
|
|
2244
|
+
const useRefreshToken = configReq.headers["X-Use-Refresh-Token"] === "true";
|
|
2245
|
+
const useActionToken = configReq.headers["X-Use-Action-Token"] === "true";
|
|
2246
|
+
const actionToken = configReq.headers["X-Action-Token"];
|
|
2249
2247
|
let token = null;
|
|
2250
2248
|
if (useActionToken && actionToken) {
|
|
2251
2249
|
token = actionToken;
|
|
@@ -2254,14 +2252,109 @@ var axiosClient = {
|
|
|
2254
2252
|
token = await getToken?.();
|
|
2255
2253
|
}
|
|
2256
2254
|
if (token) {
|
|
2257
|
-
|
|
2255
|
+
configReq.headers["Authorization"] = `Bearer ${token}`;
|
|
2258
2256
|
}
|
|
2259
2257
|
if (database) {
|
|
2260
|
-
|
|
2258
|
+
configReq.headers["DATABASE"] = database;
|
|
2261
2259
|
}
|
|
2262
|
-
|
|
2263
|
-
return config2;
|
|
2260
|
+
return configReq;
|
|
2264
2261
|
}, Promise.reject);
|
|
2262
|
+
const buildRefreshUrl = () => {
|
|
2263
|
+
if (!config.refreshTokenEndpoint) {
|
|
2264
|
+
return `${getBaseUrl(config?.baseUrl)}${"/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`;
|
|
2265
|
+
}
|
|
2266
|
+
const ep = String(config.refreshTokenEndpoint);
|
|
2267
|
+
if (/^https?:\/\//i.test(ep)) return ep;
|
|
2268
|
+
const cleanBase = String(config?.baseUrl || "").replace(/\/$/, "");
|
|
2269
|
+
const cleanEp = ep.startsWith("/") ? ep : `/${ep}`;
|
|
2270
|
+
return `${cleanBase}${cleanEp}`;
|
|
2271
|
+
};
|
|
2272
|
+
instance.interceptors.response.use(
|
|
2273
|
+
(response) => handleResponse(response),
|
|
2274
|
+
async (error) => {
|
|
2275
|
+
const handleError3 = async (err) => {
|
|
2276
|
+
if (!err.response) return err;
|
|
2277
|
+
const { data } = err.response;
|
|
2278
|
+
if (data && data.code === 400 && ["invalid_grant"].includes(data.data?.error)) {
|
|
2279
|
+
await clearAuthToken();
|
|
2280
|
+
}
|
|
2281
|
+
return data;
|
|
2282
|
+
};
|
|
2283
|
+
const originalRequest = error.config;
|
|
2284
|
+
if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401, "ERR_2FA_006"].includes(
|
|
2285
|
+
error.response.data.code
|
|
2286
|
+
)) {
|
|
2287
|
+
if (isRefreshing) {
|
|
2288
|
+
return new Promise(function(resolve, reject) {
|
|
2289
|
+
failedQueue.push({ resolve, reject });
|
|
2290
|
+
}).then((newToken) => {
|
|
2291
|
+
originalRequest.headers["Authorization"] = "Bearer " + newToken;
|
|
2292
|
+
originalRequest.data = updateTokenParamInOriginalRequest(
|
|
2293
|
+
originalRequest,
|
|
2294
|
+
newToken
|
|
2295
|
+
);
|
|
2296
|
+
return instance.request(originalRequest);
|
|
2297
|
+
}).catch(async (err) => {
|
|
2298
|
+
if ((err.response?.status === 400 || err.response?.status === 401) && ["invalid_grant"].includes(err.response.data.error)) {
|
|
2299
|
+
await clearAuthToken();
|
|
2300
|
+
}
|
|
2301
|
+
});
|
|
2302
|
+
}
|
|
2303
|
+
const browserSession = await sessionStorage2.getBrowserSession();
|
|
2304
|
+
const refreshToken = await localStorage2.getRefreshToken();
|
|
2305
|
+
const accessTokenExp = await localStorage2.getAccessToken();
|
|
2306
|
+
isRefreshing = true;
|
|
2307
|
+
if (!refreshToken && (!browserSession || browserSession == "unActive")) {
|
|
2308
|
+
await clearAuthToken();
|
|
2309
|
+
} else {
|
|
2310
|
+
const payload = Object.fromEntries(
|
|
2311
|
+
Object.entries({
|
|
2312
|
+
refresh_token: refreshToken,
|
|
2313
|
+
grant_type: "refresh_token",
|
|
2314
|
+
client_id: config.config.clientId,
|
|
2315
|
+
client_secret: config.config.clientSecret
|
|
2316
|
+
}).filter(([_, v]) => !!v)
|
|
2317
|
+
);
|
|
2318
|
+
const refreshUrl = buildRefreshUrl();
|
|
2319
|
+
return new Promise(function(resolve) {
|
|
2320
|
+
axios.post(refreshUrl, payload, {
|
|
2321
|
+
headers: {
|
|
2322
|
+
"Content-Type": config.refreshTokenEndpoint ? "application/x-www-form-urlencoded" : "multipart/form-data",
|
|
2323
|
+
Authorization: `Bearer ${accessTokenExp}`
|
|
2324
|
+
}
|
|
2325
|
+
}).then(async (res) => {
|
|
2326
|
+
const data = res.data;
|
|
2327
|
+
await localStorage2.setToken(data.access_token);
|
|
2328
|
+
await localStorage2.setRefreshToken(data.refresh_token);
|
|
2329
|
+
axios.defaults.headers.common["Authorization"] = "Bearer " + data.access_token;
|
|
2330
|
+
originalRequest.headers["Authorization"] = "Bearer " + data.access_token;
|
|
2331
|
+
originalRequest.data = updateTokenParamInOriginalRequest(
|
|
2332
|
+
originalRequest,
|
|
2333
|
+
data.access_token
|
|
2334
|
+
);
|
|
2335
|
+
processQueue(null, data.access_token);
|
|
2336
|
+
resolve(instance.request(originalRequest));
|
|
2337
|
+
}).catch(async (err) => {
|
|
2338
|
+
if (err && (err?.error_code === "AUTHEN_FAIL" || err?.error_code === "TOKEN_EXPIRED" || err?.error_code === "TOKEN_INCORRECT" || err?.code === "ERR_2FA_006")) {
|
|
2339
|
+
await clearAuthToken();
|
|
2340
|
+
}
|
|
2341
|
+
if (err && err.response) {
|
|
2342
|
+
const { error_code } = err.response?.data || {};
|
|
2343
|
+
const { code } = err;
|
|
2344
|
+
if (error_code === "AUTHEN_FAIL" || code === "ERR_2FA_006") {
|
|
2345
|
+
await clearAuthToken();
|
|
2346
|
+
}
|
|
2347
|
+
}
|
|
2348
|
+
processQueue(err, null);
|
|
2349
|
+
}).finally(() => {
|
|
2350
|
+
isRefreshing = false;
|
|
2351
|
+
});
|
|
2352
|
+
});
|
|
2353
|
+
}
|
|
2354
|
+
}
|
|
2355
|
+
return Promise.reject(await handleError3(error));
|
|
2356
|
+
}
|
|
2357
|
+
);
|
|
2265
2358
|
instance.interceptors.response.use(
|
|
2266
2359
|
(response) => {
|
|
2267
2360
|
return handleResponse(response);
|
|
@@ -2281,7 +2374,6 @@ var axiosClient = {
|
|
|
2281
2374
|
if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401, "ERR_2FA_006"].includes(
|
|
2282
2375
|
error.response.data.code
|
|
2283
2376
|
)) {
|
|
2284
|
-
console.log("isRefreshing", isRefreshing);
|
|
2285
2377
|
if (isRefreshing) {
|
|
2286
2378
|
return new Promise(function(resolve, reject) {
|
|
2287
2379
|
failedQueue.push({ resolve, reject });
|
|
@@ -2303,7 +2395,6 @@ var axiosClient = {
|
|
|
2303
2395
|
const accessTokenExp = await localStorage2.getAccessToken();
|
|
2304
2396
|
isRefreshing = true;
|
|
2305
2397
|
if (!refreshToken && (!browserSession || browserSession == "unActive")) {
|
|
2306
|
-
console.log("222");
|
|
2307
2398
|
await clearAuthToken();
|
|
2308
2399
|
} else {
|
|
2309
2400
|
const payload = Object.fromEntries(
|
|
@@ -2314,7 +2405,6 @@ var axiosClient = {
|
|
|
2314
2405
|
client_secret: config.config.clientSecret
|
|
2315
2406
|
}).filter(([_, value]) => !!value)
|
|
2316
2407
|
);
|
|
2317
|
-
console.log("111");
|
|
2318
2408
|
return new Promise(function(resolve) {
|
|
2319
2409
|
axios.post(
|
|
2320
2410
|
`${config?.baseUrl}${config.refreshTokenEndpoint ?? "/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`,
|
package/dist/environment.js
CHANGED
|
@@ -2278,12 +2278,10 @@ var axiosClient = {
|
|
|
2278
2278
|
timeout: 5e4,
|
|
2279
2279
|
paramsSerializer: (params) => new URLSearchParams(params).toString()
|
|
2280
2280
|
});
|
|
2281
|
-
instance.interceptors.request.use(async (
|
|
2282
|
-
const useRefreshToken =
|
|
2283
|
-
const useActionToken =
|
|
2284
|
-
const actionToken =
|
|
2285
|
-
console.log("config", config2);
|
|
2286
|
-
console.log("useRefreshToken", useRefreshToken);
|
|
2281
|
+
instance.interceptors.request.use(async (configReq) => {
|
|
2282
|
+
const useRefreshToken = configReq.headers["X-Use-Refresh-Token"] === "true";
|
|
2283
|
+
const useActionToken = configReq.headers["X-Use-Action-Token"] === "true";
|
|
2284
|
+
const actionToken = configReq.headers["X-Action-Token"];
|
|
2287
2285
|
let token = null;
|
|
2288
2286
|
if (useActionToken && actionToken) {
|
|
2289
2287
|
token = actionToken;
|
|
@@ -2292,14 +2290,109 @@ var axiosClient = {
|
|
|
2292
2290
|
token = await getToken?.();
|
|
2293
2291
|
}
|
|
2294
2292
|
if (token) {
|
|
2295
|
-
|
|
2293
|
+
configReq.headers["Authorization"] = `Bearer ${token}`;
|
|
2296
2294
|
}
|
|
2297
2295
|
if (database) {
|
|
2298
|
-
|
|
2296
|
+
configReq.headers["DATABASE"] = database;
|
|
2299
2297
|
}
|
|
2300
|
-
|
|
2301
|
-
return config2;
|
|
2298
|
+
return configReq;
|
|
2302
2299
|
}, Promise.reject);
|
|
2300
|
+
const buildRefreshUrl = () => {
|
|
2301
|
+
if (!config.refreshTokenEndpoint) {
|
|
2302
|
+
return `${getBaseUrl(config?.baseUrl)}${"/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`;
|
|
2303
|
+
}
|
|
2304
|
+
const ep = String(config.refreshTokenEndpoint);
|
|
2305
|
+
if (/^https?:\/\//i.test(ep)) return ep;
|
|
2306
|
+
const cleanBase = String(config?.baseUrl || "").replace(/\/$/, "");
|
|
2307
|
+
const cleanEp = ep.startsWith("/") ? ep : `/${ep}`;
|
|
2308
|
+
return `${cleanBase}${cleanEp}`;
|
|
2309
|
+
};
|
|
2310
|
+
instance.interceptors.response.use(
|
|
2311
|
+
(response) => handleResponse(response),
|
|
2312
|
+
async (error) => {
|
|
2313
|
+
const handleError3 = async (err) => {
|
|
2314
|
+
if (!err.response) return err;
|
|
2315
|
+
const { data } = err.response;
|
|
2316
|
+
if (data && data.code === 400 && ["invalid_grant"].includes(data.data?.error)) {
|
|
2317
|
+
await clearAuthToken();
|
|
2318
|
+
}
|
|
2319
|
+
return data;
|
|
2320
|
+
};
|
|
2321
|
+
const originalRequest = error.config;
|
|
2322
|
+
if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401, "ERR_2FA_006"].includes(
|
|
2323
|
+
error.response.data.code
|
|
2324
|
+
)) {
|
|
2325
|
+
if (isRefreshing) {
|
|
2326
|
+
return new Promise(function(resolve, reject) {
|
|
2327
|
+
failedQueue.push({ resolve, reject });
|
|
2328
|
+
}).then((newToken) => {
|
|
2329
|
+
originalRequest.headers["Authorization"] = "Bearer " + newToken;
|
|
2330
|
+
originalRequest.data = updateTokenParamInOriginalRequest(
|
|
2331
|
+
originalRequest,
|
|
2332
|
+
newToken
|
|
2333
|
+
);
|
|
2334
|
+
return instance.request(originalRequest);
|
|
2335
|
+
}).catch(async (err) => {
|
|
2336
|
+
if ((err.response?.status === 400 || err.response?.status === 401) && ["invalid_grant"].includes(err.response.data.error)) {
|
|
2337
|
+
await clearAuthToken();
|
|
2338
|
+
}
|
|
2339
|
+
});
|
|
2340
|
+
}
|
|
2341
|
+
const browserSession = await sessionStorage2.getBrowserSession();
|
|
2342
|
+
const refreshToken = await localStorage2.getRefreshToken();
|
|
2343
|
+
const accessTokenExp = await localStorage2.getAccessToken();
|
|
2344
|
+
isRefreshing = true;
|
|
2345
|
+
if (!refreshToken && (!browserSession || browserSession == "unActive")) {
|
|
2346
|
+
await clearAuthToken();
|
|
2347
|
+
} else {
|
|
2348
|
+
const payload = Object.fromEntries(
|
|
2349
|
+
Object.entries({
|
|
2350
|
+
refresh_token: refreshToken,
|
|
2351
|
+
grant_type: "refresh_token",
|
|
2352
|
+
client_id: config.config.clientId,
|
|
2353
|
+
client_secret: config.config.clientSecret
|
|
2354
|
+
}).filter(([_, v]) => !!v)
|
|
2355
|
+
);
|
|
2356
|
+
const refreshUrl = buildRefreshUrl();
|
|
2357
|
+
return new Promise(function(resolve) {
|
|
2358
|
+
import_axios.default.post(refreshUrl, payload, {
|
|
2359
|
+
headers: {
|
|
2360
|
+
"Content-Type": config.refreshTokenEndpoint ? "application/x-www-form-urlencoded" : "multipart/form-data",
|
|
2361
|
+
Authorization: `Bearer ${accessTokenExp}`
|
|
2362
|
+
}
|
|
2363
|
+
}).then(async (res) => {
|
|
2364
|
+
const data = res.data;
|
|
2365
|
+
await localStorage2.setToken(data.access_token);
|
|
2366
|
+
await localStorage2.setRefreshToken(data.refresh_token);
|
|
2367
|
+
import_axios.default.defaults.headers.common["Authorization"] = "Bearer " + data.access_token;
|
|
2368
|
+
originalRequest.headers["Authorization"] = "Bearer " + data.access_token;
|
|
2369
|
+
originalRequest.data = updateTokenParamInOriginalRequest(
|
|
2370
|
+
originalRequest,
|
|
2371
|
+
data.access_token
|
|
2372
|
+
);
|
|
2373
|
+
processQueue(null, data.access_token);
|
|
2374
|
+
resolve(instance.request(originalRequest));
|
|
2375
|
+
}).catch(async (err) => {
|
|
2376
|
+
if (err && (err?.error_code === "AUTHEN_FAIL" || err?.error_code === "TOKEN_EXPIRED" || err?.error_code === "TOKEN_INCORRECT" || err?.code === "ERR_2FA_006")) {
|
|
2377
|
+
await clearAuthToken();
|
|
2378
|
+
}
|
|
2379
|
+
if (err && err.response) {
|
|
2380
|
+
const { error_code } = err.response?.data || {};
|
|
2381
|
+
const { code } = err;
|
|
2382
|
+
if (error_code === "AUTHEN_FAIL" || code === "ERR_2FA_006") {
|
|
2383
|
+
await clearAuthToken();
|
|
2384
|
+
}
|
|
2385
|
+
}
|
|
2386
|
+
processQueue(err, null);
|
|
2387
|
+
}).finally(() => {
|
|
2388
|
+
isRefreshing = false;
|
|
2389
|
+
});
|
|
2390
|
+
});
|
|
2391
|
+
}
|
|
2392
|
+
}
|
|
2393
|
+
return Promise.reject(await handleError3(error));
|
|
2394
|
+
}
|
|
2395
|
+
);
|
|
2303
2396
|
instance.interceptors.response.use(
|
|
2304
2397
|
(response) => {
|
|
2305
2398
|
return handleResponse(response);
|
|
@@ -2319,7 +2412,6 @@ var axiosClient = {
|
|
|
2319
2412
|
if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401, "ERR_2FA_006"].includes(
|
|
2320
2413
|
error.response.data.code
|
|
2321
2414
|
)) {
|
|
2322
|
-
console.log("isRefreshing", isRefreshing);
|
|
2323
2415
|
if (isRefreshing) {
|
|
2324
2416
|
return new Promise(function(resolve, reject) {
|
|
2325
2417
|
failedQueue.push({ resolve, reject });
|
|
@@ -2341,7 +2433,6 @@ var axiosClient = {
|
|
|
2341
2433
|
const accessTokenExp = await localStorage2.getAccessToken();
|
|
2342
2434
|
isRefreshing = true;
|
|
2343
2435
|
if (!refreshToken && (!browserSession || browserSession == "unActive")) {
|
|
2344
|
-
console.log("222");
|
|
2345
2436
|
await clearAuthToken();
|
|
2346
2437
|
} else {
|
|
2347
2438
|
const payload = Object.fromEntries(
|
|
@@ -2352,7 +2443,6 @@ var axiosClient = {
|
|
|
2352
2443
|
client_secret: config.config.clientSecret
|
|
2353
2444
|
}).filter(([_, value]) => !!value)
|
|
2354
2445
|
);
|
|
2355
|
-
console.log("111");
|
|
2356
2446
|
return new Promise(function(resolve) {
|
|
2357
2447
|
import_axios.default.post(
|
|
2358
2448
|
`${config?.baseUrl}${config.refreshTokenEndpoint ?? "/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`,
|
package/dist/environment.mjs
CHANGED
|
@@ -2240,12 +2240,10 @@ var axiosClient = {
|
|
|
2240
2240
|
timeout: 5e4,
|
|
2241
2241
|
paramsSerializer: (params) => new URLSearchParams(params).toString()
|
|
2242
2242
|
});
|
|
2243
|
-
instance.interceptors.request.use(async (
|
|
2244
|
-
const useRefreshToken =
|
|
2245
|
-
const useActionToken =
|
|
2246
|
-
const actionToken =
|
|
2247
|
-
console.log("config", config2);
|
|
2248
|
-
console.log("useRefreshToken", useRefreshToken);
|
|
2243
|
+
instance.interceptors.request.use(async (configReq) => {
|
|
2244
|
+
const useRefreshToken = configReq.headers["X-Use-Refresh-Token"] === "true";
|
|
2245
|
+
const useActionToken = configReq.headers["X-Use-Action-Token"] === "true";
|
|
2246
|
+
const actionToken = configReq.headers["X-Action-Token"];
|
|
2249
2247
|
let token = null;
|
|
2250
2248
|
if (useActionToken && actionToken) {
|
|
2251
2249
|
token = actionToken;
|
|
@@ -2254,14 +2252,109 @@ var axiosClient = {
|
|
|
2254
2252
|
token = await getToken?.();
|
|
2255
2253
|
}
|
|
2256
2254
|
if (token) {
|
|
2257
|
-
|
|
2255
|
+
configReq.headers["Authorization"] = `Bearer ${token}`;
|
|
2258
2256
|
}
|
|
2259
2257
|
if (database) {
|
|
2260
|
-
|
|
2258
|
+
configReq.headers["DATABASE"] = database;
|
|
2261
2259
|
}
|
|
2262
|
-
|
|
2263
|
-
return config2;
|
|
2260
|
+
return configReq;
|
|
2264
2261
|
}, Promise.reject);
|
|
2262
|
+
const buildRefreshUrl = () => {
|
|
2263
|
+
if (!config.refreshTokenEndpoint) {
|
|
2264
|
+
return `${getBaseUrl(config?.baseUrl)}${"/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`;
|
|
2265
|
+
}
|
|
2266
|
+
const ep = String(config.refreshTokenEndpoint);
|
|
2267
|
+
if (/^https?:\/\//i.test(ep)) return ep;
|
|
2268
|
+
const cleanBase = String(config?.baseUrl || "").replace(/\/$/, "");
|
|
2269
|
+
const cleanEp = ep.startsWith("/") ? ep : `/${ep}`;
|
|
2270
|
+
return `${cleanBase}${cleanEp}`;
|
|
2271
|
+
};
|
|
2272
|
+
instance.interceptors.response.use(
|
|
2273
|
+
(response) => handleResponse(response),
|
|
2274
|
+
async (error) => {
|
|
2275
|
+
const handleError3 = async (err) => {
|
|
2276
|
+
if (!err.response) return err;
|
|
2277
|
+
const { data } = err.response;
|
|
2278
|
+
if (data && data.code === 400 && ["invalid_grant"].includes(data.data?.error)) {
|
|
2279
|
+
await clearAuthToken();
|
|
2280
|
+
}
|
|
2281
|
+
return data;
|
|
2282
|
+
};
|
|
2283
|
+
const originalRequest = error.config;
|
|
2284
|
+
if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401, "ERR_2FA_006"].includes(
|
|
2285
|
+
error.response.data.code
|
|
2286
|
+
)) {
|
|
2287
|
+
if (isRefreshing) {
|
|
2288
|
+
return new Promise(function(resolve, reject) {
|
|
2289
|
+
failedQueue.push({ resolve, reject });
|
|
2290
|
+
}).then((newToken) => {
|
|
2291
|
+
originalRequest.headers["Authorization"] = "Bearer " + newToken;
|
|
2292
|
+
originalRequest.data = updateTokenParamInOriginalRequest(
|
|
2293
|
+
originalRequest,
|
|
2294
|
+
newToken
|
|
2295
|
+
);
|
|
2296
|
+
return instance.request(originalRequest);
|
|
2297
|
+
}).catch(async (err) => {
|
|
2298
|
+
if ((err.response?.status === 400 || err.response?.status === 401) && ["invalid_grant"].includes(err.response.data.error)) {
|
|
2299
|
+
await clearAuthToken();
|
|
2300
|
+
}
|
|
2301
|
+
});
|
|
2302
|
+
}
|
|
2303
|
+
const browserSession = await sessionStorage2.getBrowserSession();
|
|
2304
|
+
const refreshToken = await localStorage2.getRefreshToken();
|
|
2305
|
+
const accessTokenExp = await localStorage2.getAccessToken();
|
|
2306
|
+
isRefreshing = true;
|
|
2307
|
+
if (!refreshToken && (!browserSession || browserSession == "unActive")) {
|
|
2308
|
+
await clearAuthToken();
|
|
2309
|
+
} else {
|
|
2310
|
+
const payload = Object.fromEntries(
|
|
2311
|
+
Object.entries({
|
|
2312
|
+
refresh_token: refreshToken,
|
|
2313
|
+
grant_type: "refresh_token",
|
|
2314
|
+
client_id: config.config.clientId,
|
|
2315
|
+
client_secret: config.config.clientSecret
|
|
2316
|
+
}).filter(([_, v]) => !!v)
|
|
2317
|
+
);
|
|
2318
|
+
const refreshUrl = buildRefreshUrl();
|
|
2319
|
+
return new Promise(function(resolve) {
|
|
2320
|
+
axios.post(refreshUrl, payload, {
|
|
2321
|
+
headers: {
|
|
2322
|
+
"Content-Type": config.refreshTokenEndpoint ? "application/x-www-form-urlencoded" : "multipart/form-data",
|
|
2323
|
+
Authorization: `Bearer ${accessTokenExp}`
|
|
2324
|
+
}
|
|
2325
|
+
}).then(async (res) => {
|
|
2326
|
+
const data = res.data;
|
|
2327
|
+
await localStorage2.setToken(data.access_token);
|
|
2328
|
+
await localStorage2.setRefreshToken(data.refresh_token);
|
|
2329
|
+
axios.defaults.headers.common["Authorization"] = "Bearer " + data.access_token;
|
|
2330
|
+
originalRequest.headers["Authorization"] = "Bearer " + data.access_token;
|
|
2331
|
+
originalRequest.data = updateTokenParamInOriginalRequest(
|
|
2332
|
+
originalRequest,
|
|
2333
|
+
data.access_token
|
|
2334
|
+
);
|
|
2335
|
+
processQueue(null, data.access_token);
|
|
2336
|
+
resolve(instance.request(originalRequest));
|
|
2337
|
+
}).catch(async (err) => {
|
|
2338
|
+
if (err && (err?.error_code === "AUTHEN_FAIL" || err?.error_code === "TOKEN_EXPIRED" || err?.error_code === "TOKEN_INCORRECT" || err?.code === "ERR_2FA_006")) {
|
|
2339
|
+
await clearAuthToken();
|
|
2340
|
+
}
|
|
2341
|
+
if (err && err.response) {
|
|
2342
|
+
const { error_code } = err.response?.data || {};
|
|
2343
|
+
const { code } = err;
|
|
2344
|
+
if (error_code === "AUTHEN_FAIL" || code === "ERR_2FA_006") {
|
|
2345
|
+
await clearAuthToken();
|
|
2346
|
+
}
|
|
2347
|
+
}
|
|
2348
|
+
processQueue(err, null);
|
|
2349
|
+
}).finally(() => {
|
|
2350
|
+
isRefreshing = false;
|
|
2351
|
+
});
|
|
2352
|
+
});
|
|
2353
|
+
}
|
|
2354
|
+
}
|
|
2355
|
+
return Promise.reject(await handleError3(error));
|
|
2356
|
+
}
|
|
2357
|
+
);
|
|
2265
2358
|
instance.interceptors.response.use(
|
|
2266
2359
|
(response) => {
|
|
2267
2360
|
return handleResponse(response);
|
|
@@ -2281,7 +2374,6 @@ var axiosClient = {
|
|
|
2281
2374
|
if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401, "ERR_2FA_006"].includes(
|
|
2282
2375
|
error.response.data.code
|
|
2283
2376
|
)) {
|
|
2284
|
-
console.log("isRefreshing", isRefreshing);
|
|
2285
2377
|
if (isRefreshing) {
|
|
2286
2378
|
return new Promise(function(resolve, reject) {
|
|
2287
2379
|
failedQueue.push({ resolve, reject });
|
|
@@ -2303,7 +2395,6 @@ var axiosClient = {
|
|
|
2303
2395
|
const accessTokenExp = await localStorage2.getAccessToken();
|
|
2304
2396
|
isRefreshing = true;
|
|
2305
2397
|
if (!refreshToken && (!browserSession || browserSession == "unActive")) {
|
|
2306
|
-
console.log("222");
|
|
2307
2398
|
await clearAuthToken();
|
|
2308
2399
|
} else {
|
|
2309
2400
|
const payload = Object.fromEntries(
|
|
@@ -2314,7 +2405,6 @@ var axiosClient = {
|
|
|
2314
2405
|
client_secret: config.config.clientSecret
|
|
2315
2406
|
}).filter(([_, value]) => !!value)
|
|
2316
2407
|
);
|
|
2317
|
-
console.log("111");
|
|
2318
2408
|
return new Promise(function(resolve) {
|
|
2319
2409
|
axios.post(
|
|
2320
2410
|
`${config?.baseUrl}${config.refreshTokenEndpoint ?? "/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`,
|
package/dist/provider.js
CHANGED
|
@@ -5915,12 +5915,10 @@ var axiosClient = {
|
|
|
5915
5915
|
timeout: 5e4,
|
|
5916
5916
|
paramsSerializer: (params) => new URLSearchParams(params).toString()
|
|
5917
5917
|
});
|
|
5918
|
-
instance.interceptors.request.use(async (
|
|
5919
|
-
const useRefreshToken =
|
|
5920
|
-
const useActionToken =
|
|
5921
|
-
const actionToken =
|
|
5922
|
-
console.log("config", config2);
|
|
5923
|
-
console.log("useRefreshToken", useRefreshToken);
|
|
5918
|
+
instance.interceptors.request.use(async (configReq) => {
|
|
5919
|
+
const useRefreshToken = configReq.headers["X-Use-Refresh-Token"] === "true";
|
|
5920
|
+
const useActionToken = configReq.headers["X-Use-Action-Token"] === "true";
|
|
5921
|
+
const actionToken = configReq.headers["X-Action-Token"];
|
|
5924
5922
|
let token = null;
|
|
5925
5923
|
if (useActionToken && actionToken) {
|
|
5926
5924
|
token = actionToken;
|
|
@@ -5929,14 +5927,109 @@ var axiosClient = {
|
|
|
5929
5927
|
token = await getToken?.();
|
|
5930
5928
|
}
|
|
5931
5929
|
if (token) {
|
|
5932
|
-
|
|
5930
|
+
configReq.headers["Authorization"] = `Bearer ${token}`;
|
|
5933
5931
|
}
|
|
5934
5932
|
if (database) {
|
|
5935
|
-
|
|
5933
|
+
configReq.headers["DATABASE"] = database;
|
|
5936
5934
|
}
|
|
5937
|
-
|
|
5938
|
-
return config2;
|
|
5935
|
+
return configReq;
|
|
5939
5936
|
}, Promise.reject);
|
|
5937
|
+
const buildRefreshUrl = () => {
|
|
5938
|
+
if (!config.refreshTokenEndpoint) {
|
|
5939
|
+
return `${getBaseUrl(config?.baseUrl)}${"/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`;
|
|
5940
|
+
}
|
|
5941
|
+
const ep = String(config.refreshTokenEndpoint);
|
|
5942
|
+
if (/^https?:\/\//i.test(ep)) return ep;
|
|
5943
|
+
const cleanBase = String(config?.baseUrl || "").replace(/\/$/, "");
|
|
5944
|
+
const cleanEp = ep.startsWith("/") ? ep : `/${ep}`;
|
|
5945
|
+
return `${cleanBase}${cleanEp}`;
|
|
5946
|
+
};
|
|
5947
|
+
instance.interceptors.response.use(
|
|
5948
|
+
(response) => handleResponse(response),
|
|
5949
|
+
async (error) => {
|
|
5950
|
+
const handleError3 = async (err) => {
|
|
5951
|
+
if (!err.response) return err;
|
|
5952
|
+
const { data } = err.response;
|
|
5953
|
+
if (data && data.code === 400 && ["invalid_grant"].includes(data.data?.error)) {
|
|
5954
|
+
await clearAuthToken();
|
|
5955
|
+
}
|
|
5956
|
+
return data;
|
|
5957
|
+
};
|
|
5958
|
+
const originalRequest = error.config;
|
|
5959
|
+
if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401, "ERR_2FA_006"].includes(
|
|
5960
|
+
error.response.data.code
|
|
5961
|
+
)) {
|
|
5962
|
+
if (isRefreshing) {
|
|
5963
|
+
return new Promise(function(resolve, reject) {
|
|
5964
|
+
failedQueue.push({ resolve, reject });
|
|
5965
|
+
}).then((newToken) => {
|
|
5966
|
+
originalRequest.headers["Authorization"] = "Bearer " + newToken;
|
|
5967
|
+
originalRequest.data = updateTokenParamInOriginalRequest(
|
|
5968
|
+
originalRequest,
|
|
5969
|
+
newToken
|
|
5970
|
+
);
|
|
5971
|
+
return instance.request(originalRequest);
|
|
5972
|
+
}).catch(async (err) => {
|
|
5973
|
+
if ((err.response?.status === 400 || err.response?.status === 401) && ["invalid_grant"].includes(err.response.data.error)) {
|
|
5974
|
+
await clearAuthToken();
|
|
5975
|
+
}
|
|
5976
|
+
});
|
|
5977
|
+
}
|
|
5978
|
+
const browserSession = await sessionStorage2.getBrowserSession();
|
|
5979
|
+
const refreshToken = await localStorage2.getRefreshToken();
|
|
5980
|
+
const accessTokenExp = await localStorage2.getAccessToken();
|
|
5981
|
+
isRefreshing = true;
|
|
5982
|
+
if (!refreshToken && (!browserSession || browserSession == "unActive")) {
|
|
5983
|
+
await clearAuthToken();
|
|
5984
|
+
} else {
|
|
5985
|
+
const payload = Object.fromEntries(
|
|
5986
|
+
Object.entries({
|
|
5987
|
+
refresh_token: refreshToken,
|
|
5988
|
+
grant_type: "refresh_token",
|
|
5989
|
+
client_id: config.config.clientId,
|
|
5990
|
+
client_secret: config.config.clientSecret
|
|
5991
|
+
}).filter(([_, v]) => !!v)
|
|
5992
|
+
);
|
|
5993
|
+
const refreshUrl = buildRefreshUrl();
|
|
5994
|
+
return new Promise(function(resolve) {
|
|
5995
|
+
import_axios.default.post(refreshUrl, payload, {
|
|
5996
|
+
headers: {
|
|
5997
|
+
"Content-Type": config.refreshTokenEndpoint ? "application/x-www-form-urlencoded" : "multipart/form-data",
|
|
5998
|
+
Authorization: `Bearer ${accessTokenExp}`
|
|
5999
|
+
}
|
|
6000
|
+
}).then(async (res) => {
|
|
6001
|
+
const data = res.data;
|
|
6002
|
+
await localStorage2.setToken(data.access_token);
|
|
6003
|
+
await localStorage2.setRefreshToken(data.refresh_token);
|
|
6004
|
+
import_axios.default.defaults.headers.common["Authorization"] = "Bearer " + data.access_token;
|
|
6005
|
+
originalRequest.headers["Authorization"] = "Bearer " + data.access_token;
|
|
6006
|
+
originalRequest.data = updateTokenParamInOriginalRequest(
|
|
6007
|
+
originalRequest,
|
|
6008
|
+
data.access_token
|
|
6009
|
+
);
|
|
6010
|
+
processQueue(null, data.access_token);
|
|
6011
|
+
resolve(instance.request(originalRequest));
|
|
6012
|
+
}).catch(async (err) => {
|
|
6013
|
+
if (err && (err?.error_code === "AUTHEN_FAIL" || err?.error_code === "TOKEN_EXPIRED" || err?.error_code === "TOKEN_INCORRECT" || err?.code === "ERR_2FA_006")) {
|
|
6014
|
+
await clearAuthToken();
|
|
6015
|
+
}
|
|
6016
|
+
if (err && err.response) {
|
|
6017
|
+
const { error_code } = err.response?.data || {};
|
|
6018
|
+
const { code } = err;
|
|
6019
|
+
if (error_code === "AUTHEN_FAIL" || code === "ERR_2FA_006") {
|
|
6020
|
+
await clearAuthToken();
|
|
6021
|
+
}
|
|
6022
|
+
}
|
|
6023
|
+
processQueue(err, null);
|
|
6024
|
+
}).finally(() => {
|
|
6025
|
+
isRefreshing = false;
|
|
6026
|
+
});
|
|
6027
|
+
});
|
|
6028
|
+
}
|
|
6029
|
+
}
|
|
6030
|
+
return Promise.reject(await handleError3(error));
|
|
6031
|
+
}
|
|
6032
|
+
);
|
|
5940
6033
|
instance.interceptors.response.use(
|
|
5941
6034
|
(response) => {
|
|
5942
6035
|
return handleResponse(response);
|
|
@@ -5956,7 +6049,6 @@ var axiosClient = {
|
|
|
5956
6049
|
if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401, "ERR_2FA_006"].includes(
|
|
5957
6050
|
error.response.data.code
|
|
5958
6051
|
)) {
|
|
5959
|
-
console.log("isRefreshing", isRefreshing);
|
|
5960
6052
|
if (isRefreshing) {
|
|
5961
6053
|
return new Promise(function(resolve, reject) {
|
|
5962
6054
|
failedQueue.push({ resolve, reject });
|
|
@@ -5978,7 +6070,6 @@ var axiosClient = {
|
|
|
5978
6070
|
const accessTokenExp = await localStorage2.getAccessToken();
|
|
5979
6071
|
isRefreshing = true;
|
|
5980
6072
|
if (!refreshToken && (!browserSession || browserSession == "unActive")) {
|
|
5981
|
-
console.log("222");
|
|
5982
6073
|
await clearAuthToken();
|
|
5983
6074
|
} else {
|
|
5984
6075
|
const payload = Object.fromEntries(
|
|
@@ -5989,7 +6080,6 @@ var axiosClient = {
|
|
|
5989
6080
|
client_secret: config.config.clientSecret
|
|
5990
6081
|
}).filter(([_, value]) => !!value)
|
|
5991
6082
|
);
|
|
5992
|
-
console.log("111");
|
|
5993
6083
|
return new Promise(function(resolve) {
|
|
5994
6084
|
import_axios.default.post(
|
|
5995
6085
|
`${config?.baseUrl}${config.refreshTokenEndpoint ?? "/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`,
|
package/dist/provider.mjs
CHANGED
|
@@ -5872,12 +5872,10 @@ var axiosClient = {
|
|
|
5872
5872
|
timeout: 5e4,
|
|
5873
5873
|
paramsSerializer: (params) => new URLSearchParams(params).toString()
|
|
5874
5874
|
});
|
|
5875
|
-
instance.interceptors.request.use(async (
|
|
5876
|
-
const useRefreshToken =
|
|
5877
|
-
const useActionToken =
|
|
5878
|
-
const actionToken =
|
|
5879
|
-
console.log("config", config2);
|
|
5880
|
-
console.log("useRefreshToken", useRefreshToken);
|
|
5875
|
+
instance.interceptors.request.use(async (configReq) => {
|
|
5876
|
+
const useRefreshToken = configReq.headers["X-Use-Refresh-Token"] === "true";
|
|
5877
|
+
const useActionToken = configReq.headers["X-Use-Action-Token"] === "true";
|
|
5878
|
+
const actionToken = configReq.headers["X-Action-Token"];
|
|
5881
5879
|
let token = null;
|
|
5882
5880
|
if (useActionToken && actionToken) {
|
|
5883
5881
|
token = actionToken;
|
|
@@ -5886,14 +5884,109 @@ var axiosClient = {
|
|
|
5886
5884
|
token = await getToken?.();
|
|
5887
5885
|
}
|
|
5888
5886
|
if (token) {
|
|
5889
|
-
|
|
5887
|
+
configReq.headers["Authorization"] = `Bearer ${token}`;
|
|
5890
5888
|
}
|
|
5891
5889
|
if (database) {
|
|
5892
|
-
|
|
5890
|
+
configReq.headers["DATABASE"] = database;
|
|
5893
5891
|
}
|
|
5894
|
-
|
|
5895
|
-
return config2;
|
|
5892
|
+
return configReq;
|
|
5896
5893
|
}, Promise.reject);
|
|
5894
|
+
const buildRefreshUrl = () => {
|
|
5895
|
+
if (!config.refreshTokenEndpoint) {
|
|
5896
|
+
return `${getBaseUrl(config?.baseUrl)}${"/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`;
|
|
5897
|
+
}
|
|
5898
|
+
const ep = String(config.refreshTokenEndpoint);
|
|
5899
|
+
if (/^https?:\/\//i.test(ep)) return ep;
|
|
5900
|
+
const cleanBase = String(config?.baseUrl || "").replace(/\/$/, "");
|
|
5901
|
+
const cleanEp = ep.startsWith("/") ? ep : `/${ep}`;
|
|
5902
|
+
return `${cleanBase}${cleanEp}`;
|
|
5903
|
+
};
|
|
5904
|
+
instance.interceptors.response.use(
|
|
5905
|
+
(response) => handleResponse(response),
|
|
5906
|
+
async (error) => {
|
|
5907
|
+
const handleError3 = async (err) => {
|
|
5908
|
+
if (!err.response) return err;
|
|
5909
|
+
const { data } = err.response;
|
|
5910
|
+
if (data && data.code === 400 && ["invalid_grant"].includes(data.data?.error)) {
|
|
5911
|
+
await clearAuthToken();
|
|
5912
|
+
}
|
|
5913
|
+
return data;
|
|
5914
|
+
};
|
|
5915
|
+
const originalRequest = error.config;
|
|
5916
|
+
if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401, "ERR_2FA_006"].includes(
|
|
5917
|
+
error.response.data.code
|
|
5918
|
+
)) {
|
|
5919
|
+
if (isRefreshing) {
|
|
5920
|
+
return new Promise(function(resolve, reject) {
|
|
5921
|
+
failedQueue.push({ resolve, reject });
|
|
5922
|
+
}).then((newToken) => {
|
|
5923
|
+
originalRequest.headers["Authorization"] = "Bearer " + newToken;
|
|
5924
|
+
originalRequest.data = updateTokenParamInOriginalRequest(
|
|
5925
|
+
originalRequest,
|
|
5926
|
+
newToken
|
|
5927
|
+
);
|
|
5928
|
+
return instance.request(originalRequest);
|
|
5929
|
+
}).catch(async (err) => {
|
|
5930
|
+
if ((err.response?.status === 400 || err.response?.status === 401) && ["invalid_grant"].includes(err.response.data.error)) {
|
|
5931
|
+
await clearAuthToken();
|
|
5932
|
+
}
|
|
5933
|
+
});
|
|
5934
|
+
}
|
|
5935
|
+
const browserSession = await sessionStorage2.getBrowserSession();
|
|
5936
|
+
const refreshToken = await localStorage2.getRefreshToken();
|
|
5937
|
+
const accessTokenExp = await localStorage2.getAccessToken();
|
|
5938
|
+
isRefreshing = true;
|
|
5939
|
+
if (!refreshToken && (!browserSession || browserSession == "unActive")) {
|
|
5940
|
+
await clearAuthToken();
|
|
5941
|
+
} else {
|
|
5942
|
+
const payload = Object.fromEntries(
|
|
5943
|
+
Object.entries({
|
|
5944
|
+
refresh_token: refreshToken,
|
|
5945
|
+
grant_type: "refresh_token",
|
|
5946
|
+
client_id: config.config.clientId,
|
|
5947
|
+
client_secret: config.config.clientSecret
|
|
5948
|
+
}).filter(([_, v]) => !!v)
|
|
5949
|
+
);
|
|
5950
|
+
const refreshUrl = buildRefreshUrl();
|
|
5951
|
+
return new Promise(function(resolve) {
|
|
5952
|
+
axios.post(refreshUrl, payload, {
|
|
5953
|
+
headers: {
|
|
5954
|
+
"Content-Type": config.refreshTokenEndpoint ? "application/x-www-form-urlencoded" : "multipart/form-data",
|
|
5955
|
+
Authorization: `Bearer ${accessTokenExp}`
|
|
5956
|
+
}
|
|
5957
|
+
}).then(async (res) => {
|
|
5958
|
+
const data = res.data;
|
|
5959
|
+
await localStorage2.setToken(data.access_token);
|
|
5960
|
+
await localStorage2.setRefreshToken(data.refresh_token);
|
|
5961
|
+
axios.defaults.headers.common["Authorization"] = "Bearer " + data.access_token;
|
|
5962
|
+
originalRequest.headers["Authorization"] = "Bearer " + data.access_token;
|
|
5963
|
+
originalRequest.data = updateTokenParamInOriginalRequest(
|
|
5964
|
+
originalRequest,
|
|
5965
|
+
data.access_token
|
|
5966
|
+
);
|
|
5967
|
+
processQueue(null, data.access_token);
|
|
5968
|
+
resolve(instance.request(originalRequest));
|
|
5969
|
+
}).catch(async (err) => {
|
|
5970
|
+
if (err && (err?.error_code === "AUTHEN_FAIL" || err?.error_code === "TOKEN_EXPIRED" || err?.error_code === "TOKEN_INCORRECT" || err?.code === "ERR_2FA_006")) {
|
|
5971
|
+
await clearAuthToken();
|
|
5972
|
+
}
|
|
5973
|
+
if (err && err.response) {
|
|
5974
|
+
const { error_code } = err.response?.data || {};
|
|
5975
|
+
const { code } = err;
|
|
5976
|
+
if (error_code === "AUTHEN_FAIL" || code === "ERR_2FA_006") {
|
|
5977
|
+
await clearAuthToken();
|
|
5978
|
+
}
|
|
5979
|
+
}
|
|
5980
|
+
processQueue(err, null);
|
|
5981
|
+
}).finally(() => {
|
|
5982
|
+
isRefreshing = false;
|
|
5983
|
+
});
|
|
5984
|
+
});
|
|
5985
|
+
}
|
|
5986
|
+
}
|
|
5987
|
+
return Promise.reject(await handleError3(error));
|
|
5988
|
+
}
|
|
5989
|
+
);
|
|
5897
5990
|
instance.interceptors.response.use(
|
|
5898
5991
|
(response) => {
|
|
5899
5992
|
return handleResponse(response);
|
|
@@ -5913,7 +6006,6 @@ var axiosClient = {
|
|
|
5913
6006
|
if ((error.response?.status === 403 || error.response?.status === 401 || error.response?.status === 404) && ["TOKEN_EXPIRED", "AUTHEN_FAIL", 401, "ERR_2FA_006"].includes(
|
|
5914
6007
|
error.response.data.code
|
|
5915
6008
|
)) {
|
|
5916
|
-
console.log("isRefreshing", isRefreshing);
|
|
5917
6009
|
if (isRefreshing) {
|
|
5918
6010
|
return new Promise(function(resolve, reject) {
|
|
5919
6011
|
failedQueue.push({ resolve, reject });
|
|
@@ -5935,7 +6027,6 @@ var axiosClient = {
|
|
|
5935
6027
|
const accessTokenExp = await localStorage2.getAccessToken();
|
|
5936
6028
|
isRefreshing = true;
|
|
5937
6029
|
if (!refreshToken && (!browserSession || browserSession == "unActive")) {
|
|
5938
|
-
console.log("222");
|
|
5939
6030
|
await clearAuthToken();
|
|
5940
6031
|
} else {
|
|
5941
6032
|
const payload = Object.fromEntries(
|
|
@@ -5946,7 +6037,6 @@ var axiosClient = {
|
|
|
5946
6037
|
client_secret: config.config.clientSecret
|
|
5947
6038
|
}).filter(([_, value]) => !!value)
|
|
5948
6039
|
);
|
|
5949
|
-
console.log("111");
|
|
5950
6040
|
return new Promise(function(resolve) {
|
|
5951
6041
|
axios.post(
|
|
5952
6042
|
`${config?.baseUrl}${config.refreshTokenEndpoint ?? "/authentication/oauth2/token" /* AUTH_TOKEN_PATH */}`,
|