phx-uikit 1.0.217 → 1.0.219
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.
|
@@ -8,13 +8,23 @@ var constants_1 = require("./utils/constants");
|
|
|
8
8
|
var saveCookiesClient_1 = tslib_1.__importDefault(require("./components/Func/saveCookiesClient"));
|
|
9
9
|
var getCookieSession_1 = tslib_1.__importDefault(require("./components/Func/getCookieSession"));
|
|
10
10
|
var headers_1 = require("next/headers");
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
// ✅ Tạo bộ nhớ dùng chung giữa các SSR requests
|
|
12
|
+
// @ts-ignore
|
|
13
|
+
if (!globalThis.__PHX_REFRESH__) {
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
globalThis.__PHX_REFRESH__ = {
|
|
16
|
+
isRefreshing: false,
|
|
17
|
+
failedQueue: []
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
var getRefreshState = function () { return globalThis.__PHX_REFRESH__; };
|
|
13
22
|
var publicUrl = (0, read_env_config_1.getEnv)('NEXT_PUBLIC_API_GATEWAY', process.env.NEXT_PUBLIC_API_GATEWAY);
|
|
14
23
|
var internalUrl = (0, read_env_config_1.getEnv)('NEXT_PUBLIC_API_GATEWAY_INTERNAL', process.env.NEXT_PUBLIC_API_GATEWAY_INTERNAL);
|
|
15
24
|
var isServer = typeof window === 'undefined';
|
|
16
25
|
var processQueue = function (error, token) {
|
|
17
26
|
if (token === void 0) { token = null; }
|
|
27
|
+
var failedQueue = getRefreshState().failedQueue;
|
|
18
28
|
failedQueue.forEach(function (prom) {
|
|
19
29
|
if (error) {
|
|
20
30
|
prom.reject(error);
|
|
@@ -23,7 +33,7 @@ var processQueue = function (error, token) {
|
|
|
23
33
|
prom.resolve(token);
|
|
24
34
|
}
|
|
25
35
|
});
|
|
26
|
-
failedQueue = [];
|
|
36
|
+
getRefreshState().failedQueue = [];
|
|
27
37
|
};
|
|
28
38
|
var PHXAxiosInstance = axios_1["default"].create({
|
|
29
39
|
baseURL: publicUrl
|
|
@@ -31,7 +41,6 @@ var PHXAxiosInstance = axios_1["default"].create({
|
|
|
31
41
|
exports.PHXAxiosInstance = PHXAxiosInstance;
|
|
32
42
|
var getAuthHeaders = function () {
|
|
33
43
|
if (isServer) {
|
|
34
|
-
// Server-side
|
|
35
44
|
var cookieStore = (0, headers_1.cookies)();
|
|
36
45
|
var cookieHeader = cookieStore
|
|
37
46
|
.getAll()
|
|
@@ -62,14 +71,12 @@ var refreshAccessToken = function () { return tslib_1.__awaiter(void 0, void 0,
|
|
|
62
71
|
currentSession = (0, getCookieSession_1["default"])();
|
|
63
72
|
(0, saveCookiesClient_1["default"])({ value: tslib_1.__assign(tslib_1.__assign({}, currentSession), { access_token: newToken }) });
|
|
64
73
|
if (isServer) {
|
|
65
|
-
// save refresh token from server site
|
|
66
74
|
saveRefreshTokenServer(response);
|
|
67
75
|
}
|
|
68
76
|
return [2 /*return*/, newToken];
|
|
69
77
|
case 2:
|
|
70
78
|
err_1 = _a.sent();
|
|
71
79
|
if (!isServer) {
|
|
72
|
-
// Cookies.remove(COOKIE_SESSION_SIGN_IN)
|
|
73
80
|
window.location.href = constants_1.loginPage;
|
|
74
81
|
}
|
|
75
82
|
throw err_1;
|
|
@@ -125,16 +132,17 @@ PHXAxiosInstance.interceptors.request.use(function (config) { return tslib_1.__a
|
|
|
125
132
|
});
|
|
126
133
|
}); });
|
|
127
134
|
PHXAxiosInstance.interceptors.response.use(function (response) { return response; }, function (error) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
128
|
-
var originalRequest, newToken, err_3;
|
|
135
|
+
var originalRequest, refreshState, newToken, err_3;
|
|
129
136
|
var _a;
|
|
130
137
|
return tslib_1.__generator(this, function (_b) {
|
|
131
138
|
switch (_b.label) {
|
|
132
139
|
case 0:
|
|
133
140
|
originalRequest = error.config;
|
|
141
|
+
refreshState = getRefreshState();
|
|
134
142
|
if (!(((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 && !originalRequest._retry)) return [3 /*break*/, 5];
|
|
135
|
-
if (isRefreshing) {
|
|
143
|
+
if (refreshState.isRefreshing) {
|
|
136
144
|
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
137
|
-
failedQueue.push({
|
|
145
|
+
refreshState.failedQueue.push({
|
|
138
146
|
resolve: function (token) {
|
|
139
147
|
originalRequest.headers.Authorization = 'Bearer ' + token;
|
|
140
148
|
resolve(PHXAxiosInstance(originalRequest));
|
|
@@ -144,7 +152,7 @@ PHXAxiosInstance.interceptors.response.use(function (response) { return response
|
|
|
144
152
|
})];
|
|
145
153
|
}
|
|
146
154
|
originalRequest._retry = true;
|
|
147
|
-
isRefreshing = true;
|
|
155
|
+
refreshState.isRefreshing = true;
|
|
148
156
|
_b.label = 1;
|
|
149
157
|
case 1:
|
|
150
158
|
_b.trys.push([1, 3, 4, 5]);
|
|
@@ -159,7 +167,7 @@ PHXAxiosInstance.interceptors.response.use(function (response) { return response
|
|
|
159
167
|
processQueue(err_3, null);
|
|
160
168
|
return [2 /*return*/, Promise.reject(err_3)];
|
|
161
169
|
case 4:
|
|
162
|
-
isRefreshing = false;
|
|
170
|
+
refreshState.isRefreshing = false;
|
|
163
171
|
return [7 /*endfinally*/];
|
|
164
172
|
case 5: return [2 /*return*/, Promise.reject(error)];
|
|
165
173
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":";;;;AAAA,wDAAyB;AACzB,qDAA0C;AAC1C,+CAAmE;AACnE,kGAAmE;AACnE,gGAAwE;AACxE,wCAA+C;AAE/C,IAAI,
|
|
1
|
+
{"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,13 +5,23 @@ import { COOKIE_REFRESH_TOKEN, loginPage } from './utils/constants';
|
|
|
5
5
|
import saveCookiesClient from './components/Func/saveCookiesClient';
|
|
6
6
|
import PHXFuncGetCookieSession from './components/Func/getCookieSession';
|
|
7
7
|
import { cookies, headers } from 'next/headers';
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
// ✅ Tạo bộ nhớ dùng chung giữa các SSR requests
|
|
9
|
+
// @ts-ignore
|
|
10
|
+
if (!globalThis.__PHX_REFRESH__) {
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
globalThis.__PHX_REFRESH__ = {
|
|
13
|
+
isRefreshing: false,
|
|
14
|
+
failedQueue: []
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
var getRefreshState = function () { return globalThis.__PHX_REFRESH__; };
|
|
10
19
|
var publicUrl = getEnv('NEXT_PUBLIC_API_GATEWAY', process.env.NEXT_PUBLIC_API_GATEWAY);
|
|
11
20
|
var internalUrl = getEnv('NEXT_PUBLIC_API_GATEWAY_INTERNAL', process.env.NEXT_PUBLIC_API_GATEWAY_INTERNAL);
|
|
12
21
|
var isServer = typeof window === 'undefined';
|
|
13
22
|
var processQueue = function (error, token) {
|
|
14
23
|
if (token === void 0) { token = null; }
|
|
24
|
+
var failedQueue = getRefreshState().failedQueue;
|
|
15
25
|
failedQueue.forEach(function (prom) {
|
|
16
26
|
if (error) {
|
|
17
27
|
prom.reject(error);
|
|
@@ -20,14 +30,13 @@ var processQueue = function (error, token) {
|
|
|
20
30
|
prom.resolve(token);
|
|
21
31
|
}
|
|
22
32
|
});
|
|
23
|
-
failedQueue = [];
|
|
33
|
+
getRefreshState().failedQueue = [];
|
|
24
34
|
};
|
|
25
35
|
var PHXAxiosInstance = axios.create({
|
|
26
36
|
baseURL: publicUrl
|
|
27
37
|
});
|
|
28
38
|
var getAuthHeaders = function () {
|
|
29
39
|
if (isServer) {
|
|
30
|
-
// Server-side
|
|
31
40
|
var cookieStore = cookies();
|
|
32
41
|
var cookieHeader = cookieStore
|
|
33
42
|
.getAll()
|
|
@@ -58,14 +67,12 @@ var refreshAccessToken = function () { return __awaiter(void 0, void 0, void 0,
|
|
|
58
67
|
currentSession = PHXFuncGetCookieSession();
|
|
59
68
|
saveCookiesClient({ value: __assign(__assign({}, currentSession), { access_token: newToken }) });
|
|
60
69
|
if (isServer) {
|
|
61
|
-
// save refresh token from server site
|
|
62
70
|
saveRefreshTokenServer(response);
|
|
63
71
|
}
|
|
64
72
|
return [2 /*return*/, newToken];
|
|
65
73
|
case 2:
|
|
66
74
|
err_1 = _a.sent();
|
|
67
75
|
if (!isServer) {
|
|
68
|
-
// Cookies.remove(COOKIE_SESSION_SIGN_IN)
|
|
69
76
|
window.location.href = loginPage;
|
|
70
77
|
}
|
|
71
78
|
throw err_1;
|
|
@@ -121,16 +128,17 @@ PHXAxiosInstance.interceptors.request.use(function (config) { return __awaiter(v
|
|
|
121
128
|
});
|
|
122
129
|
}); });
|
|
123
130
|
PHXAxiosInstance.interceptors.response.use(function (response) { return response; }, function (error) { return __awaiter(void 0, void 0, void 0, function () {
|
|
124
|
-
var originalRequest, newToken, err_3;
|
|
131
|
+
var originalRequest, refreshState, newToken, err_3;
|
|
125
132
|
var _a;
|
|
126
133
|
return __generator(this, function (_b) {
|
|
127
134
|
switch (_b.label) {
|
|
128
135
|
case 0:
|
|
129
136
|
originalRequest = error.config;
|
|
137
|
+
refreshState = getRefreshState();
|
|
130
138
|
if (!(((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 && !originalRequest._retry)) return [3 /*break*/, 5];
|
|
131
|
-
if (isRefreshing) {
|
|
139
|
+
if (refreshState.isRefreshing) {
|
|
132
140
|
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
133
|
-
failedQueue.push({
|
|
141
|
+
refreshState.failedQueue.push({
|
|
134
142
|
resolve: function (token) {
|
|
135
143
|
originalRequest.headers.Authorization = 'Bearer ' + token;
|
|
136
144
|
resolve(PHXAxiosInstance(originalRequest));
|
|
@@ -140,7 +148,7 @@ PHXAxiosInstance.interceptors.response.use(function (response) { return response
|
|
|
140
148
|
})];
|
|
141
149
|
}
|
|
142
150
|
originalRequest._retry = true;
|
|
143
|
-
isRefreshing = true;
|
|
151
|
+
refreshState.isRefreshing = true;
|
|
144
152
|
_b.label = 1;
|
|
145
153
|
case 1:
|
|
146
154
|
_b.trys.push([1, 3, 4, 5]);
|
|
@@ -155,7 +163,7 @@ PHXAxiosInstance.interceptors.response.use(function (response) { return response
|
|
|
155
163
|
processQueue(err_3, null);
|
|
156
164
|
return [2 /*return*/, Promise.reject(err_3)];
|
|
157
165
|
case 4:
|
|
158
|
-
isRefreshing = false;
|
|
166
|
+
refreshState.isRefreshing = false;
|
|
159
167
|
return [7 /*endfinally*/];
|
|
160
168
|
case 5: return [2 /*return*/, Promise.reject(error)];
|
|
161
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACnE,OAAO,iBAAiB,MAAM,qCAAqC,CAAA;AACnE,OAAO,uBAAuB,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE/C,IAAI,
|
|
1
|
+
{"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":"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"}
|