phx-uikit 1.0.223 → 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,41 +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
|
-
|
|
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];
|
|
83
93
|
});
|
|
84
94
|
}); };
|
|
85
|
-
// Request interceptor:
|
|
95
|
+
// Request interceptor: thêm Authorization header nếu có token
|
|
86
96
|
PHXAxiosInstance.interceptors.request.use(function (config) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
87
97
|
var session, token, err_2, fresh;
|
|
88
98
|
var _a;
|
|
@@ -116,14 +126,13 @@ PHXAxiosInstance.interceptors.request.use(function (config) { return tslib_1.__a
|
|
|
116
126
|
}
|
|
117
127
|
});
|
|
118
128
|
}); });
|
|
119
|
-
// Response interceptor: bắt 401,
|
|
129
|
+
// Response interceptor: bắt 401 lần đầu, refresh và retry
|
|
120
130
|
PHXAxiosInstance.interceptors.response.use(function (res) { return res; }, function (error) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
121
131
|
var originalRequest, newToken, e_1;
|
|
122
132
|
var _a;
|
|
123
133
|
return tslib_1.__generator(this, function (_b) {
|
|
124
134
|
switch (_b.label) {
|
|
125
135
|
case 0:
|
|
126
|
-
console.log('errorerror', error);
|
|
127
136
|
originalRequest = error.config;
|
|
128
137
|
if (!(((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 && !originalRequest._retry)) return [3 /*break*/, 4];
|
|
129
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":"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"}
|
|
@@ -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,41 +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
|
-
|
|
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];
|
|
79
89
|
});
|
|
80
90
|
}); };
|
|
81
|
-
// Request interceptor:
|
|
91
|
+
// Request interceptor: thêm Authorization header nếu có token
|
|
82
92
|
PHXAxiosInstance.interceptors.request.use(function (config) { return __awaiter(void 0, void 0, void 0, function () {
|
|
83
93
|
var session, token, err_2, fresh;
|
|
84
94
|
var _a;
|
|
@@ -112,14 +122,13 @@ PHXAxiosInstance.interceptors.request.use(function (config) { return __awaiter(v
|
|
|
112
122
|
}
|
|
113
123
|
});
|
|
114
124
|
}); });
|
|
115
|
-
// Response interceptor: bắt 401,
|
|
125
|
+
// Response interceptor: bắt 401 lần đầu, refresh và retry
|
|
116
126
|
PHXAxiosInstance.interceptors.response.use(function (res) { return res; }, function (error) { return __awaiter(void 0, void 0, void 0, function () {
|
|
117
127
|
var originalRequest, newToken, e_1;
|
|
118
128
|
var _a;
|
|
119
129
|
return __generator(this, function (_b) {
|
|
120
130
|
switch (_b.label) {
|
|
121
131
|
case 0:
|
|
122
|
-
console.log('errorerror', error);
|
|
123
132
|
originalRequest = error.config;
|
|
124
133
|
if (!(((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 && !originalRequest._retry)) return [3 /*break*/, 4];
|
|
125
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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"}
|