phx-uikit 1.0.226 → 1.0.228
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.
|
@@ -10,13 +10,16 @@ var saveCookiesClient_1 = tslib_1.__importDefault(require("./components/Func/sav
|
|
|
10
10
|
var getCookieSession_1 = tslib_1.__importDefault(require("./components/Func/getCookieSession"));
|
|
11
11
|
var headers_1 = require("next/headers");
|
|
12
12
|
var lock = new async_lock_1["default"]();
|
|
13
|
+
var isServer = typeof window === 'undefined';
|
|
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
|
-
var isServer = typeof window === 'undefined';
|
|
16
16
|
var PHXAxiosInstance = axios_1["default"].create({
|
|
17
17
|
baseURL: publicUrl
|
|
18
18
|
});
|
|
19
19
|
exports.PHXAxiosInstance = PHXAxiosInstance;
|
|
20
|
+
// === GLOBAL CACHE ===
|
|
21
|
+
var accessTokenCache = null;
|
|
22
|
+
var refreshingPromise = null;
|
|
20
23
|
// Lấy header (cookie + origin) khi chạy SSR
|
|
21
24
|
var getAuthHeaders = function () {
|
|
22
25
|
if (!isServer)
|
|
@@ -48,20 +51,27 @@ var saveRefreshTokenServer = function (response) {
|
|
|
48
51
|
expires: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000)
|
|
49
52
|
});
|
|
50
53
|
};
|
|
51
|
-
//
|
|
54
|
+
// Hàm refresh access token, chỉ gọi 1 lần duy nhất tại một thời điểm
|
|
52
55
|
var refreshAccessToken = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
53
56
|
return tslib_1.__generator(this, function (_a) {
|
|
54
|
-
|
|
57
|
+
if (!refreshingPromise) {
|
|
58
|
+
refreshingPromise = lock.acquire('refresh_token', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
55
59
|
var currentSession, existing, url, response, newToken, updatedSession, err_1;
|
|
56
60
|
return tslib_1.__generator(this, function (_a) {
|
|
57
61
|
switch (_a.label) {
|
|
58
62
|
case 0:
|
|
63
|
+
// Kiểm tra lại cache
|
|
64
|
+
if (accessTokenCache) {
|
|
65
|
+
refreshingPromise = null;
|
|
66
|
+
return [2 /*return*/, accessTokenCache];
|
|
67
|
+
}
|
|
59
68
|
currentSession = (0, getCookieSession_1["default"])();
|
|
60
69
|
existing = currentSession === null || currentSession === void 0 ? void 0 : currentSession.access_token;
|
|
61
|
-
if (existing)
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
];
|
|
70
|
+
if (existing) {
|
|
71
|
+
accessTokenCache = existing;
|
|
72
|
+
refreshingPromise = null;
|
|
73
|
+
return [2 /*return*/, existing];
|
|
74
|
+
}
|
|
65
75
|
_a.label = 1;
|
|
66
76
|
case 1:
|
|
67
77
|
_a.trys.push([1, 3, , 4]);
|
|
@@ -70,16 +80,20 @@ var refreshAccessToken = function () { return tslib_1.__awaiter(void 0, void 0,
|
|
|
70
80
|
case 2:
|
|
71
81
|
response = _a.sent();
|
|
72
82
|
newToken = response.data.token;
|
|
83
|
+
// Cập nhật cache
|
|
84
|
+
accessTokenCache = newToken;
|
|
73
85
|
updatedSession = (0, getCookieSession_1["default"])();
|
|
74
86
|
(0, saveCookiesClient_1["default"])({
|
|
75
87
|
value: tslib_1.__assign(tslib_1.__assign({}, updatedSession), { access_token: newToken })
|
|
76
88
|
});
|
|
77
|
-
// Lưu refresh token
|
|
89
|
+
// Lưu refresh token phía server nếu SSR
|
|
78
90
|
if (isServer)
|
|
79
91
|
saveRefreshTokenServer(response);
|
|
92
|
+
refreshingPromise = null;
|
|
80
93
|
return [2 /*return*/, newToken];
|
|
81
94
|
case 3:
|
|
82
95
|
err_1 = _a.sent();
|
|
96
|
+
refreshingPromise = null;
|
|
83
97
|
if (!isServer) {
|
|
84
98
|
window.location.href = constants_1.loginPage;
|
|
85
99
|
}
|
|
@@ -87,20 +101,27 @@ var refreshAccessToken = function () { return tslib_1.__awaiter(void 0, void 0,
|
|
|
87
101
|
case 4: return [2 /*return*/];
|
|
88
102
|
}
|
|
89
103
|
});
|
|
90
|
-
}); })
|
|
104
|
+
}); });
|
|
105
|
+
}
|
|
106
|
+
return [2 /*return*/, refreshingPromise];
|
|
91
107
|
});
|
|
92
108
|
}); };
|
|
93
109
|
// Request interceptor: luôn thêm Authorization nếu có access_token
|
|
94
110
|
PHXAxiosInstance.interceptors.request.use(function (config) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
95
|
-
var
|
|
111
|
+
var token, session, err_2, fresh;
|
|
96
112
|
var _a;
|
|
97
113
|
return tslib_1.__generator(this, function (_b) {
|
|
98
114
|
switch (_b.label) {
|
|
99
115
|
case 0:
|
|
100
|
-
session = (0, getCookieSession_1["default"])();
|
|
101
|
-
token = session === null || session === void 0 ? void 0 : session.access_token;
|
|
102
|
-
if (!token) return [3 /*break*/, 7];
|
|
103
116
|
config.headers = config.headers || {};
|
|
117
|
+
token = accessTokenCache;
|
|
118
|
+
if (!token) {
|
|
119
|
+
session = (0, getCookieSession_1["default"])();
|
|
120
|
+
token = (session === null || session === void 0 ? void 0 : session.access_token) || null;
|
|
121
|
+
if (token)
|
|
122
|
+
accessTokenCache = token;
|
|
123
|
+
}
|
|
124
|
+
if (!token) return [3 /*break*/, 7];
|
|
104
125
|
config.headers.Authorization = "Bearer ".concat(token);
|
|
105
126
|
if (!isServer) return [3 /*break*/, 7];
|
|
106
127
|
_b.label = 1;
|
|
@@ -113,9 +134,6 @@ PHXAxiosInstance.interceptors.request.use(function (config) { return tslib_1.__a
|
|
|
113
134
|
case 3:
|
|
114
135
|
err_2 = _b.sent();
|
|
115
136
|
if (!(((_a = err_2.response) === null || _a === void 0 ? void 0 : _a.status) === 401)) return [3 /*break*/, 5];
|
|
116
|
-
(0, saveCookiesClient_1["default"])({
|
|
117
|
-
value: tslib_1.__assign(tslib_1.__assign({}, session), { access_token: '' })
|
|
118
|
-
});
|
|
119
137
|
return [4 /*yield*/, refreshAccessToken()];
|
|
120
138
|
case 4:
|
|
121
139
|
fresh = _b.sent();
|
|
@@ -127,14 +145,13 @@ PHXAxiosInstance.interceptors.request.use(function (config) { return tslib_1.__a
|
|
|
127
145
|
}
|
|
128
146
|
});
|
|
129
147
|
}); });
|
|
130
|
-
// Response interceptor: bắt 401, gọi refresh và retry
|
|
148
|
+
// Response interceptor: bắt lỗi 401, gọi refresh và retry
|
|
131
149
|
PHXAxiosInstance.interceptors.response.use(function (res) { return res; }, function (error) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
132
150
|
var originalRequest, newToken, e_1;
|
|
133
151
|
var _a;
|
|
134
152
|
return tslib_1.__generator(this, function (_b) {
|
|
135
153
|
switch (_b.label) {
|
|
136
154
|
case 0:
|
|
137
|
-
console.log('errorerror', error);
|
|
138
155
|
originalRequest = error.config;
|
|
139
156
|
if (!(((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 && !originalRequest._retry)) return [3 /*break*/, 4];
|
|
140
157
|
originalRequest._retry = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":";;;;AAAA,wDAA4C;AAC5C,kEAAkC;AAClC,qDAA0C;AAC1C,+CAAmE;AACnE,kGAAmE;AACnE,gGAAwE;AACxE,wCAA+C;AAS/C,IAAM,IAAI,GAAG,IAAI,uBAAS,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,12 +7,15 @@ import saveCookiesClient from './components/Func/saveCookiesClient';
|
|
|
7
7
|
import PHXFuncGetCookieSession from './components/Func/getCookieSession';
|
|
8
8
|
import { cookies, headers } from 'next/headers';
|
|
9
9
|
var lock = new AsyncLock();
|
|
10
|
+
var isServer = typeof window === 'undefined';
|
|
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
|
-
var isServer = typeof window === 'undefined';
|
|
13
13
|
var PHXAxiosInstance = axios.create({
|
|
14
14
|
baseURL: publicUrl
|
|
15
15
|
});
|
|
16
|
+
// === GLOBAL CACHE ===
|
|
17
|
+
var accessTokenCache = null;
|
|
18
|
+
var refreshingPromise = null;
|
|
16
19
|
// Lấy header (cookie + origin) khi chạy SSR
|
|
17
20
|
var getAuthHeaders = function () {
|
|
18
21
|
if (!isServer)
|
|
@@ -44,20 +47,27 @@ var saveRefreshTokenServer = function (response) {
|
|
|
44
47
|
expires: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000)
|
|
45
48
|
});
|
|
46
49
|
};
|
|
47
|
-
//
|
|
50
|
+
// Hàm refresh access token, chỉ gọi 1 lần duy nhất tại một thời điểm
|
|
48
51
|
var refreshAccessToken = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
49
52
|
return __generator(this, function (_a) {
|
|
50
|
-
|
|
53
|
+
if (!refreshingPromise) {
|
|
54
|
+
refreshingPromise = lock.acquire('refresh_token', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
51
55
|
var currentSession, existing, url, response, newToken, updatedSession, err_1;
|
|
52
56
|
return __generator(this, function (_a) {
|
|
53
57
|
switch (_a.label) {
|
|
54
58
|
case 0:
|
|
59
|
+
// Kiểm tra lại cache
|
|
60
|
+
if (accessTokenCache) {
|
|
61
|
+
refreshingPromise = null;
|
|
62
|
+
return [2 /*return*/, accessTokenCache];
|
|
63
|
+
}
|
|
55
64
|
currentSession = PHXFuncGetCookieSession();
|
|
56
65
|
existing = currentSession === null || currentSession === void 0 ? void 0 : currentSession.access_token;
|
|
57
|
-
if (existing)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
];
|
|
66
|
+
if (existing) {
|
|
67
|
+
accessTokenCache = existing;
|
|
68
|
+
refreshingPromise = null;
|
|
69
|
+
return [2 /*return*/, existing];
|
|
70
|
+
}
|
|
61
71
|
_a.label = 1;
|
|
62
72
|
case 1:
|
|
63
73
|
_a.trys.push([1, 3, , 4]);
|
|
@@ -66,16 +76,20 @@ var refreshAccessToken = function () { return __awaiter(void 0, void 0, void 0,
|
|
|
66
76
|
case 2:
|
|
67
77
|
response = _a.sent();
|
|
68
78
|
newToken = response.data.token;
|
|
79
|
+
// Cập nhật cache
|
|
80
|
+
accessTokenCache = newToken;
|
|
69
81
|
updatedSession = PHXFuncGetCookieSession();
|
|
70
82
|
saveCookiesClient({
|
|
71
83
|
value: __assign(__assign({}, updatedSession), { access_token: newToken })
|
|
72
84
|
});
|
|
73
|
-
// Lưu refresh token
|
|
85
|
+
// Lưu refresh token phía server nếu SSR
|
|
74
86
|
if (isServer)
|
|
75
87
|
saveRefreshTokenServer(response);
|
|
88
|
+
refreshingPromise = null;
|
|
76
89
|
return [2 /*return*/, newToken];
|
|
77
90
|
case 3:
|
|
78
91
|
err_1 = _a.sent();
|
|
92
|
+
refreshingPromise = null;
|
|
79
93
|
if (!isServer) {
|
|
80
94
|
window.location.href = loginPage;
|
|
81
95
|
}
|
|
@@ -83,20 +97,27 @@ var refreshAccessToken = function () { return __awaiter(void 0, void 0, void 0,
|
|
|
83
97
|
case 4: return [2 /*return*/];
|
|
84
98
|
}
|
|
85
99
|
});
|
|
86
|
-
}); })
|
|
100
|
+
}); });
|
|
101
|
+
}
|
|
102
|
+
return [2 /*return*/, refreshingPromise];
|
|
87
103
|
});
|
|
88
104
|
}); };
|
|
89
105
|
// Request interceptor: luôn thêm Authorization nếu có access_token
|
|
90
106
|
PHXAxiosInstance.interceptors.request.use(function (config) { return __awaiter(void 0, void 0, void 0, function () {
|
|
91
|
-
var
|
|
107
|
+
var token, session, err_2, fresh;
|
|
92
108
|
var _a;
|
|
93
109
|
return __generator(this, function (_b) {
|
|
94
110
|
switch (_b.label) {
|
|
95
111
|
case 0:
|
|
96
|
-
session = PHXFuncGetCookieSession();
|
|
97
|
-
token = session === null || session === void 0 ? void 0 : session.access_token;
|
|
98
|
-
if (!token) return [3 /*break*/, 7];
|
|
99
112
|
config.headers = config.headers || {};
|
|
113
|
+
token = accessTokenCache;
|
|
114
|
+
if (!token) {
|
|
115
|
+
session = PHXFuncGetCookieSession();
|
|
116
|
+
token = (session === null || session === void 0 ? void 0 : session.access_token) || null;
|
|
117
|
+
if (token)
|
|
118
|
+
accessTokenCache = token;
|
|
119
|
+
}
|
|
120
|
+
if (!token) return [3 /*break*/, 7];
|
|
100
121
|
config.headers.Authorization = "Bearer ".concat(token);
|
|
101
122
|
if (!isServer) return [3 /*break*/, 7];
|
|
102
123
|
_b.label = 1;
|
|
@@ -109,9 +130,6 @@ PHXAxiosInstance.interceptors.request.use(function (config) { return __awaiter(v
|
|
|
109
130
|
case 3:
|
|
110
131
|
err_2 = _b.sent();
|
|
111
132
|
if (!(((_a = err_2.response) === null || _a === void 0 ? void 0 : _a.status) === 401)) return [3 /*break*/, 5];
|
|
112
|
-
saveCookiesClient({
|
|
113
|
-
value: __assign(__assign({}, session), { access_token: '' })
|
|
114
|
-
});
|
|
115
133
|
return [4 /*yield*/, refreshAccessToken()];
|
|
116
134
|
case 4:
|
|
117
135
|
fresh = _b.sent();
|
|
@@ -123,14 +141,13 @@ PHXAxiosInstance.interceptors.request.use(function (config) { return __awaiter(v
|
|
|
123
141
|
}
|
|
124
142
|
});
|
|
125
143
|
}); });
|
|
126
|
-
// Response interceptor: bắt 401, gọi refresh và retry
|
|
144
|
+
// Response interceptor: bắt lỗi 401, gọi refresh và retry
|
|
127
145
|
PHXAxiosInstance.interceptors.response.use(function (res) { return res; }, function (error) { return __awaiter(void 0, void 0, void 0, function () {
|
|
128
146
|
var originalRequest, newToken, e_1;
|
|
129
147
|
var _a;
|
|
130
148
|
return __generator(this, function (_b) {
|
|
131
149
|
switch (_b.label) {
|
|
132
150
|
case 0:
|
|
133
|
-
console.log('errorerror', error);
|
|
134
151
|
originalRequest = error.config;
|
|
135
152
|
if (!(((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 && !originalRequest._retry)) return [3 /*break*/, 4];
|
|
136
153
|
originalRequest._retry = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":";AAAA,OAAO,KAAwB,MAAM,OAAO,CAAA;AAC5C,OAAO,SAAS,MAAM,YAAY,CAAA;AAClC,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;AAS/C,IAAM,IAAI,GAAG,IAAI,SAAS,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":"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"}
|