phx-uikit 1.0.222 → 1.0.224
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.
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
// axios.ts
|
|
2
3
|
exports.__esModule = true;
|
|
3
4
|
exports.PHXAxiosInstance = void 0;
|
|
4
5
|
var tslib_1 = require("tslib");
|
|
5
6
|
var axios_1 = tslib_1.__importDefault(require("axios"));
|
|
6
|
-
var async_lock_1 = tslib_1.__importDefault(require("async-lock"));
|
|
7
7
|
var read_env_config_1 = require("./read-env-config");
|
|
8
8
|
var constants_1 = require("./utils/constants");
|
|
9
9
|
var saveCookiesClient_1 = tslib_1.__importDefault(require("./components/Func/saveCookiesClient"));
|
|
10
10
|
var getCookieSession_1 = tslib_1.__importDefault(require("./components/Func/getCookieSession"));
|
|
11
11
|
var headers_1 = require("next/headers");
|
|
12
|
-
|
|
12
|
+
// 2) Biến toàn cục giữ promise của lần gọi refresh-token đang chờ
|
|
13
|
+
var refreshTokenPromise = null;
|
|
13
14
|
var publicUrl = (0, read_env_config_1.getEnv)('NEXT_PUBLIC_API_GATEWAY', process.env.NEXT_PUBLIC_API_GATEWAY);
|
|
14
15
|
var internalUrl = (0, read_env_config_1.getEnv)('NEXT_PUBLIC_API_GATEWAY_INTERNAL', process.env.NEXT_PUBLIC_API_GATEWAY_INTERNAL);
|
|
15
16
|
var isServer = typeof window === 'undefined';
|
|
@@ -17,7 +18,7 @@ var PHXAxiosInstance = axios_1["default"].create({
|
|
|
17
18
|
baseURL: publicUrl
|
|
18
19
|
});
|
|
19
20
|
exports.PHXAxiosInstance = PHXAxiosInstance;
|
|
20
|
-
// Lấy
|
|
21
|
+
// Lấy đủ headers (cookie + origin) khi SSR
|
|
21
22
|
var getAuthHeaders = function () {
|
|
22
23
|
if (!isServer)
|
|
23
24
|
return {};
|
|
@@ -34,10 +35,10 @@ var getAuthHeaders = function () {
|
|
|
34
35
|
hostname: (0, headers_1.headers)().get('origin') || undefined
|
|
35
36
|
};
|
|
36
37
|
};
|
|
37
|
-
// Lưu
|
|
38
|
-
var saveRefreshTokenServer = function (
|
|
38
|
+
// Lưu refresh_token vào cookie server-side
|
|
39
|
+
var saveRefreshTokenServer = function (res) {
|
|
39
40
|
var _a;
|
|
40
|
-
var setCookieHeader = ((_a =
|
|
41
|
+
var setCookieHeader = ((_a = res.headers['set-cookie']) === null || _a === void 0 ? void 0 : _a[0]) || '';
|
|
41
42
|
var match = setCookieHeader.match(/refresh_token=([^;]+)/);
|
|
42
43
|
var refreshToken = (match === null || match === void 0 ? void 0 : match[1]) || '';
|
|
43
44
|
(0, headers_1.cookies)().set(constants_1.COOKIE_REFRESH_TOKEN, refreshToken, {
|
|
@@ -48,49 +49,50 @@ var saveRefreshTokenServer = function (response) {
|
|
|
48
49
|
expires: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000)
|
|
49
50
|
});
|
|
50
51
|
};
|
|
51
|
-
//
|
|
52
|
+
// Hàm gọi refresh-token, dùng promise-caching để chỉ gọi 1 lần dù có nhiều request chờ
|
|
52
53
|
var refreshAccessToken = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
53
54
|
return tslib_1.__generator(this, function (_a) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
55
|
+
if (refreshTokenPromise) {
|
|
56
|
+
// Nếu đã có 1 lần gọi đang chờ, trả về promise đó
|
|
57
|
+
return [2 /*return*/, refreshTokenPromise];
|
|
58
|
+
}
|
|
59
|
+
refreshTokenPromise = (function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
60
|
+
var url, response, newToken, updatedSession, err_1;
|
|
61
|
+
return tslib_1.__generator(this, function (_a) {
|
|
62
|
+
switch (_a.label) {
|
|
63
|
+
case 0:
|
|
64
|
+
_a.trys.push([0, 2, 3, 4]);
|
|
65
|
+
url = "".concat(isServer ? (0, headers_1.headers)().get('origin') : '', "/api/authenticate/refresh-token");
|
|
66
|
+
return [4 /*yield*/, axios_1["default"].post(url, {}, { headers: getAuthHeaders() })];
|
|
67
|
+
case 1:
|
|
68
|
+
response = _a.sent();
|
|
69
|
+
newToken = response.data.token;
|
|
70
|
+
updatedSession = (0, getCookieSession_1["default"])();
|
|
71
|
+
(0, saveCookiesClient_1["default"])({
|
|
72
|
+
value: tslib_1.__assign(tslib_1.__assign({}, updatedSession), { access_token: newToken })
|
|
73
|
+
});
|
|
74
|
+
// Lưu refresh_token nếu chạy SSR
|
|
75
|
+
if (isServer)
|
|
76
|
+
saveRefreshTokenServer(response);
|
|
77
|
+
return [2 /*return*/, newToken];
|
|
78
|
+
case 2:
|
|
79
|
+
err_1 = _a.sent();
|
|
80
|
+
// redirect về login nếu client-side
|
|
81
|
+
if (!isServer)
|
|
82
|
+
window.location.href = constants_1.loginPage;
|
|
83
|
+
throw err_1;
|
|
84
|
+
case 3:
|
|
85
|
+
// Clear để lần sau lại có thể gọi khi cần
|
|
86
|
+
refreshTokenPromise = null;
|
|
87
|
+
return [7 /*endfinally*/];
|
|
88
|
+
case 4: return [2 /*return*/];
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}); })();
|
|
92
|
+
return [2 /*return*/, refreshTokenPromise];
|
|
91
93
|
});
|
|
92
94
|
}); };
|
|
93
|
-
// Request interceptor:
|
|
95
|
+
// Request interceptor: thêm Authorization header nếu có token
|
|
94
96
|
PHXAxiosInstance.interceptors.request.use(function (config) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
95
97
|
var session, token, err_2, fresh;
|
|
96
98
|
var _a;
|
|
@@ -124,14 +126,13 @@ PHXAxiosInstance.interceptors.request.use(function (config) { return tslib_1.__a
|
|
|
124
126
|
}
|
|
125
127
|
});
|
|
126
128
|
}); });
|
|
127
|
-
// Response interceptor: bắt 401,
|
|
129
|
+
// Response interceptor: bắt 401 lần đầu, refresh và retry
|
|
128
130
|
PHXAxiosInstance.interceptors.response.use(function (res) { return res; }, function (error) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
129
131
|
var originalRequest, newToken, e_1;
|
|
130
132
|
var _a;
|
|
131
133
|
return tslib_1.__generator(this, function (_b) {
|
|
132
134
|
switch (_b.label) {
|
|
133
135
|
case 0:
|
|
134
|
-
console.log('errorerror', error);
|
|
135
136
|
originalRequest = error.config;
|
|
136
137
|
if (!(((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 && !originalRequest._retry)) return [3 /*break*/, 4];
|
|
137
138
|
originalRequest._retry = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":";AAAA,WAAW;;;;AAEX,wDAAgE;AAChE,qDAA0C;AAC1C,+CAAmE;AACnE,kGAAmE;AACnE,gGAAwE;AACxE,wCAA+C;AAS/C,kEAAkE;AAClE,IAAI,mBAAmB,GAA2B,IAAI,CAAA;AAEtD,IAAM,SAAS,GAAG,IAAA,wBAAM,EAAC,yBAAyB,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;AACxF,IAAM,WAAW,GAAG,IAAA,wBAAM,EAAC,kCAAkC,EAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;AAE5G,IAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,CAAA;AAE9C,IAAM,gBAAgB,GAAG,kBAAK,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,SAAS;CACnB,CAAC,CAAA;AAyHO,4CAAgB;AAvHzB,2CAA2C;AAC3C,IAAM,cAAc,GAAG;IACrB,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAA;IAExB,IAAM,WAAW,GAAG,IAAA,iBAAO,GAAE,CAAA;IAC7B,IAAM,YAAY,GAAG,WAAW;SAC7B,MAAM,EAAE;SACR,GAAG,CAAC,UAAC,EAAe;YAAb,IAAI,UAAA,EAAE,KAAK,WAAA;QAAO,OAAA,UAAG,IAAI,cAAI,KAAK,CAAE;IAAlB,CAAkB,CAAC;SAC5C,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,OAAO;QACL,MAAM,EAAE,YAAY;QACpB,QAAQ,EAAE,IAAA,iBAAO,GAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS;KAC/C,CAAA;AACH,CAAC,CAAA;AAED,2CAA2C;AAC3C,IAAM,sBAAsB,GAAG,UAAC,GAAkB;;IAChD,IAAM,eAAe,GAAG,CAAA,MAAA,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,0CAAG,CAAC,CAAC,KAAI,EAAE,CAAA;IAC5D,IAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAC5D,IAAM,YAAY,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAC,CAAC,KAAI,EAAE,CAAA;IACrC,IAAA,iBAAO,GAAE,CAAC,GAAG,CAAC,gCAAoB,EAAE,YAAY,EAAE;QAChD,IAAI,EAAE,GAAG;QACT,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;KAC1D,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,uFAAuF;AACvF,IAAM,kBAAkB,GAAG;;QACzB,IAAI,mBAAmB,EAAE;YACvB,kDAAkD;YAClD,sBAAO,mBAAmB,EAAA;SAC3B;QAED,mBAAmB,GAAG,CAAC;;;;;;wBAEb,GAAG,GAAG,UAAG,QAAQ,CAAC,CAAC,CAAC,IAAA,iBAAO,GAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,oCAAiC,CAAA;wBACtE,qBAAM,kBAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,EAAA;;wBAAnE,QAAQ,GAAG,SAAwD;wBACnE,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAe,CAAA;wBAGxC,cAAc,GAAG,IAAA,6BAAuB,GAAE,CAAA;wBAChD,IAAA,8BAAiB,EAAC;4BAChB,KAAK,wCAAO,cAAc,KAAE,YAAY,EAAE,QAAQ,GAAE;yBACrD,CAAC,CAAA;wBAEF,iCAAiC;wBACjC,IAAI,QAAQ;4BAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAA;wBAE9C,sBAAO,QAAQ,EAAA;;;wBAEf,oCAAoC;wBACpC,IAAI,CAAC,QAAQ;4BAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,qBAAS,CAAA;wBAC/C,MAAM,KAAG,CAAA;;wBAET,0CAA0C;wBAC1C,mBAAmB,GAAG,IAAI,CAAA;;;;;aAE7B,CAAC,EAAE,CAAA;QAEJ,sBAAO,mBAAmB,EAAA;;KAC3B,CAAA;AAED,8DAA8D;AAC9D,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,UAAO,MAAM;;;;;;gBAC/C,OAAO,GAAG,IAAA,6BAAuB,GAAE,CAAA;gBACnC,KAAK,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAA;qBAC/B,KAAK,EAAL,wBAAK;gBACP,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;gBACrC,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,iBAAU,KAAK,CAAE,CAAA;qBAG5C,QAAQ,EAAR,wBAAQ;;;;gBAER,qBAAM,kBAAK,CAAC,IAAI,CACd,UAAG,WAAW,yBAAsB,EACpC,EAAE,EACF,EAAE,OAAO,qBAAI,aAAa,EAAE,iBAAU,KAAK,CAAE,IAAK,cAAc,EAAE,CAAE,EAAE,CACvE,EAAA;;gBAJD,SAIC,CAAA;;;;qBAEG,CAAA,CAAA,MAAA,KAAG,CAAC,QAAQ,0CAAE,MAAM,MAAK,GAAG,CAAA,EAA5B,wBAA4B;gBAEhB,qBAAM,kBAAkB,EAAE,EAAA;;gBAAlC,KAAK,GAAG,SAA0B;gBACxC,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,iBAAU,KAAK,CAAE,CAAA;;oBAEhD,MAAM,KAAG,CAAA;;oBAKjB,sBAAO,MAAM,EAAA;;;KACd,CAAC,CAAA;AAEF,0DAA0D;AAC1D,gBAAgB,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CACxC,UAAC,GAAG,IAAK,OAAA,GAAG,EAAH,CAAG,EACZ,UAAO,KAAK;;;;;;gBACJ,eAAe,GAAG,KAAK,CAAC,MAA4B,CAAA;qBAEtD,CAAA,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,MAAK,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAA,EAAzD,wBAAyD;gBAC3D,eAAe,CAAC,MAAM,GAAG,IAAI,CAAA;;;;gBAGV,qBAAM,kBAAkB,EAAE,EAAA;;gBAArC,QAAQ,GAAG,SAA0B;gBAC3C,eAAe,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,IAAI,EAAE,CAAA;gBACvD,eAAe,CAAC,OAAO,CAAC,aAAa,GAAG,iBAAU,QAAQ,CAAE,CAAA;gBAC5D,sBAAO,gBAAgB,CAAC,eAAsB,CAAC,EAAA;;;gBAE/C,sBAAO,OAAO,CAAC,MAAM,CAAC,GAAC,CAAC,EAAA;oBAI5B,sBAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA;;;KAC7B,CACF,CAAA"}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
+
// axios.ts
|
|
1
2
|
import { __assign, __awaiter, __generator } from "tslib";
|
|
2
3
|
import axios from 'axios';
|
|
3
|
-
import AsyncLock from 'async-lock';
|
|
4
4
|
import { getEnv } from './read-env-config';
|
|
5
5
|
import { COOKIE_REFRESH_TOKEN, loginPage } from './utils/constants';
|
|
6
6
|
import saveCookiesClient from './components/Func/saveCookiesClient';
|
|
7
7
|
import PHXFuncGetCookieSession from './components/Func/getCookieSession';
|
|
8
8
|
import { cookies, headers } from 'next/headers';
|
|
9
|
-
|
|
9
|
+
// 2) Biến toàn cục giữ promise của lần gọi refresh-token đang chờ
|
|
10
|
+
var refreshTokenPromise = null;
|
|
10
11
|
var publicUrl = getEnv('NEXT_PUBLIC_API_GATEWAY', process.env.NEXT_PUBLIC_API_GATEWAY);
|
|
11
12
|
var internalUrl = getEnv('NEXT_PUBLIC_API_GATEWAY_INTERNAL', process.env.NEXT_PUBLIC_API_GATEWAY_INTERNAL);
|
|
12
13
|
var isServer = typeof window === 'undefined';
|
|
13
14
|
var PHXAxiosInstance = axios.create({
|
|
14
15
|
baseURL: publicUrl
|
|
15
16
|
});
|
|
16
|
-
// Lấy
|
|
17
|
+
// Lấy đủ headers (cookie + origin) khi SSR
|
|
17
18
|
var getAuthHeaders = function () {
|
|
18
19
|
if (!isServer)
|
|
19
20
|
return {};
|
|
@@ -30,10 +31,10 @@ var getAuthHeaders = function () {
|
|
|
30
31
|
hostname: headers().get('origin') || undefined
|
|
31
32
|
};
|
|
32
33
|
};
|
|
33
|
-
// Lưu
|
|
34
|
-
var saveRefreshTokenServer = function (
|
|
34
|
+
// Lưu refresh_token vào cookie server-side
|
|
35
|
+
var saveRefreshTokenServer = function (res) {
|
|
35
36
|
var _a;
|
|
36
|
-
var setCookieHeader = ((_a =
|
|
37
|
+
var setCookieHeader = ((_a = res.headers['set-cookie']) === null || _a === void 0 ? void 0 : _a[0]) || '';
|
|
37
38
|
var match = setCookieHeader.match(/refresh_token=([^;]+)/);
|
|
38
39
|
var refreshToken = (match === null || match === void 0 ? void 0 : match[1]) || '';
|
|
39
40
|
cookies().set(COOKIE_REFRESH_TOKEN, refreshToken, {
|
|
@@ -44,49 +45,50 @@ var saveRefreshTokenServer = function (response) {
|
|
|
44
45
|
expires: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000)
|
|
45
46
|
});
|
|
46
47
|
};
|
|
47
|
-
//
|
|
48
|
+
// Hàm gọi refresh-token, dùng promise-caching để chỉ gọi 1 lần dù có nhiều request chờ
|
|
48
49
|
var refreshAccessToken = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
49
50
|
return __generator(this, function (_a) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
51
|
+
if (refreshTokenPromise) {
|
|
52
|
+
// Nếu đã có 1 lần gọi đang chờ, trả về promise đó
|
|
53
|
+
return [2 /*return*/, refreshTokenPromise];
|
|
54
|
+
}
|
|
55
|
+
refreshTokenPromise = (function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
56
|
+
var url, response, newToken, updatedSession, err_1;
|
|
57
|
+
return __generator(this, function (_a) {
|
|
58
|
+
switch (_a.label) {
|
|
59
|
+
case 0:
|
|
60
|
+
_a.trys.push([0, 2, 3, 4]);
|
|
61
|
+
url = "".concat(isServer ? headers().get('origin') : '', "/api/authenticate/refresh-token");
|
|
62
|
+
return [4 /*yield*/, axios.post(url, {}, { headers: getAuthHeaders() })];
|
|
63
|
+
case 1:
|
|
64
|
+
response = _a.sent();
|
|
65
|
+
newToken = response.data.token;
|
|
66
|
+
updatedSession = PHXFuncGetCookieSession();
|
|
67
|
+
saveCookiesClient({
|
|
68
|
+
value: __assign(__assign({}, updatedSession), { access_token: newToken })
|
|
69
|
+
});
|
|
70
|
+
// Lưu refresh_token nếu chạy SSR
|
|
71
|
+
if (isServer)
|
|
72
|
+
saveRefreshTokenServer(response);
|
|
73
|
+
return [2 /*return*/, newToken];
|
|
74
|
+
case 2:
|
|
75
|
+
err_1 = _a.sent();
|
|
76
|
+
// redirect về login nếu client-side
|
|
77
|
+
if (!isServer)
|
|
78
|
+
window.location.href = loginPage;
|
|
79
|
+
throw err_1;
|
|
80
|
+
case 3:
|
|
81
|
+
// Clear để lần sau lại có thể gọi khi cần
|
|
82
|
+
refreshTokenPromise = null;
|
|
83
|
+
return [7 /*endfinally*/];
|
|
84
|
+
case 4: return [2 /*return*/];
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}); })();
|
|
88
|
+
return [2 /*return*/, refreshTokenPromise];
|
|
87
89
|
});
|
|
88
90
|
}); };
|
|
89
|
-
// Request interceptor:
|
|
91
|
+
// Request interceptor: thêm Authorization header nếu có token
|
|
90
92
|
PHXAxiosInstance.interceptors.request.use(function (config) { return __awaiter(void 0, void 0, void 0, function () {
|
|
91
93
|
var session, token, err_2, fresh;
|
|
92
94
|
var _a;
|
|
@@ -120,14 +122,13 @@ PHXAxiosInstance.interceptors.request.use(function (config) { return __awaiter(v
|
|
|
120
122
|
}
|
|
121
123
|
});
|
|
122
124
|
}); });
|
|
123
|
-
// Response interceptor: bắt 401,
|
|
125
|
+
// Response interceptor: bắt 401 lần đầu, refresh và retry
|
|
124
126
|
PHXAxiosInstance.interceptors.response.use(function (res) { return res; }, function (error) { return __awaiter(void 0, void 0, void 0, function () {
|
|
125
127
|
var originalRequest, newToken, e_1;
|
|
126
128
|
var _a;
|
|
127
129
|
return __generator(this, function (_b) {
|
|
128
130
|
switch (_b.label) {
|
|
129
131
|
case 0:
|
|
130
|
-
console.log('errorerror', error);
|
|
131
132
|
originalRequest = error.config;
|
|
132
133
|
if (!(((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 && !originalRequest._retry)) return [3 /*break*/, 4];
|
|
133
134
|
originalRequest._retry = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":"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"}
|