phx-uikit 1.0.220 → 1.0.221
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.
|
@@ -17,23 +17,24 @@ var PHXAxiosInstance = axios_1["default"].create({
|
|
|
17
17
|
baseURL: publicUrl
|
|
18
18
|
});
|
|
19
19
|
exports.PHXAxiosInstance = PHXAxiosInstance;
|
|
20
|
+
// Lấy header (cookie + origin) khi chạy SSR
|
|
20
21
|
var getAuthHeaders = function () {
|
|
21
|
-
if (isServer)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
return {};
|
|
22
|
+
if (!isServer)
|
|
23
|
+
return {};
|
|
24
|
+
var cookieStore = (0, headers_1.cookies)();
|
|
25
|
+
var cookieHeader = cookieStore
|
|
26
|
+
.getAll()
|
|
27
|
+
.map(function (_a) {
|
|
28
|
+
var name = _a.name, value = _a.value;
|
|
29
|
+
return "".concat(name, "=").concat(value);
|
|
30
|
+
})
|
|
31
|
+
.join('; ');
|
|
32
|
+
return {
|
|
33
|
+
Cookie: cookieHeader,
|
|
34
|
+
hostname: (0, headers_1.headers)().get('origin') || undefined
|
|
35
|
+
};
|
|
36
36
|
};
|
|
37
|
+
// Lưu lại refresh token từ header của response (chỉ SSR)
|
|
37
38
|
var saveRefreshTokenServer = function (response) {
|
|
38
39
|
var _a;
|
|
39
40
|
var setCookieHeader = ((_a = response.headers['set-cookie']) === null || _a === void 0 ? void 0 : _a[0]) || '';
|
|
@@ -47,28 +48,33 @@ var saveRefreshTokenServer = function (response) {
|
|
|
47
48
|
expires: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000)
|
|
48
49
|
});
|
|
49
50
|
};
|
|
51
|
+
// Gọi API refresh-token, đồng bộ hoá với AsyncLock
|
|
50
52
|
var refreshAccessToken = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
51
53
|
return tslib_1.__generator(this, function (_a) {
|
|
52
54
|
return [2 /*return*/, lock.acquire('refresh_token', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
53
|
-
var currentSession,
|
|
55
|
+
var currentSession, existing, url, response, newToken, updatedSession, err_1;
|
|
54
56
|
return tslib_1.__generator(this, function (_a) {
|
|
55
57
|
switch (_a.label) {
|
|
56
58
|
case 0:
|
|
57
59
|
currentSession = (0, getCookieSession_1["default"])();
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
existing = currentSession === null || currentSession === void 0 ? void 0 : currentSession.access_token;
|
|
61
|
+
if (existing)
|
|
62
|
+
return [2 /*return*/, existing
|
|
63
|
+
// Thực sự gọi API refresh
|
|
64
|
+
];
|
|
63
65
|
_a.label = 1;
|
|
64
66
|
case 1:
|
|
65
67
|
_a.trys.push([1, 3, , 4]);
|
|
66
|
-
|
|
68
|
+
url = "".concat(isServer ? (0, headers_1.headers)().get('origin') : '', "/api/authenticate/refresh-token");
|
|
69
|
+
return [4 /*yield*/, axios_1["default"].post(url, {}, { headers: getAuthHeaders() })];
|
|
67
70
|
case 2:
|
|
68
71
|
response = _a.sent();
|
|
69
72
|
newToken = response.data.token;
|
|
70
73
|
updatedSession = (0, getCookieSession_1["default"])();
|
|
71
|
-
(0, saveCookiesClient_1["default"])({
|
|
74
|
+
(0, saveCookiesClient_1["default"])({
|
|
75
|
+
value: tslib_1.__assign(tslib_1.__assign({}, updatedSession), { access_token: newToken })
|
|
76
|
+
});
|
|
77
|
+
// Lưu refresh token SSR nếu cần
|
|
72
78
|
if (isServer)
|
|
73
79
|
saveRefreshTokenServer(response);
|
|
74
80
|
return [2 /*return*/, newToken];
|
|
@@ -84,23 +90,23 @@ var refreshAccessToken = function () { return tslib_1.__awaiter(void 0, void 0,
|
|
|
84
90
|
}); })];
|
|
85
91
|
});
|
|
86
92
|
}); };
|
|
93
|
+
// Request interceptor: luôn thêm Authorization nếu có access_token
|
|
87
94
|
PHXAxiosInstance.interceptors.request.use(function (config) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
88
|
-
var
|
|
95
|
+
var session, token, err_2, fresh;
|
|
89
96
|
var _a;
|
|
90
97
|
return tslib_1.__generator(this, function (_b) {
|
|
91
98
|
switch (_b.label) {
|
|
92
99
|
case 0:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
if (!
|
|
96
|
-
config.headers
|
|
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
|
+
config.headers = config.headers || {};
|
|
104
|
+
config.headers.Authorization = "Bearer ".concat(token);
|
|
97
105
|
if (!isServer) return [3 /*break*/, 7];
|
|
98
106
|
_b.label = 1;
|
|
99
107
|
case 1:
|
|
100
108
|
_b.trys.push([1, 3, , 7]);
|
|
101
|
-
return [4 /*yield*/, axios_1["default"].post("".concat(internalUrl, "/authen/authenticate"), {}, {
|
|
102
|
-
headers: tslib_1.__assign({ Authorization: "Bearer ".concat(authTokenCookie) }, getAuthHeaders())
|
|
103
|
-
})];
|
|
109
|
+
return [4 /*yield*/, axios_1["default"].post("".concat(internalUrl, "/authen/authenticate"), {}, { headers: tslib_1.__assign({ Authorization: "Bearer ".concat(token) }, getAuthHeaders()) })];
|
|
104
110
|
case 2:
|
|
105
111
|
_b.sent();
|
|
106
112
|
return [3 /*break*/, 7];
|
|
@@ -109,8 +115,8 @@ PHXAxiosInstance.interceptors.request.use(function (config) { return tslib_1.__a
|
|
|
109
115
|
if (!(((_a = err_2.response) === null || _a === void 0 ? void 0 : _a.status) === 401)) return [3 /*break*/, 5];
|
|
110
116
|
return [4 /*yield*/, refreshAccessToken()];
|
|
111
117
|
case 4:
|
|
112
|
-
|
|
113
|
-
config.headers.Authorization = "Bearer ".concat(
|
|
118
|
+
fresh = _b.sent();
|
|
119
|
+
config.headers.Authorization = "Bearer ".concat(fresh);
|
|
114
120
|
return [3 /*break*/, 6];
|
|
115
121
|
case 5: throw err_2;
|
|
116
122
|
case 6: return [3 /*break*/, 7];
|
|
@@ -118,14 +124,15 @@ PHXAxiosInstance.interceptors.request.use(function (config) { return tslib_1.__a
|
|
|
118
124
|
}
|
|
119
125
|
});
|
|
120
126
|
}); });
|
|
121
|
-
|
|
122
|
-
|
|
127
|
+
// Response interceptor: bắt 401, gọi refresh và retry
|
|
128
|
+
PHXAxiosInstance.interceptors.response.use(function (res) { return res; }, function (error) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
129
|
+
var originalRequest, newToken, e_1;
|
|
123
130
|
var _a;
|
|
124
131
|
return tslib_1.__generator(this, function (_b) {
|
|
125
132
|
switch (_b.label) {
|
|
126
133
|
case 0:
|
|
127
134
|
originalRequest = error.config;
|
|
128
|
-
if (!(((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 &&
|
|
135
|
+
if (!(((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 && originalRequest._retry !== true)) return [3 /*break*/, 4];
|
|
129
136
|
originalRequest._retry = true;
|
|
130
137
|
_b.label = 1;
|
|
131
138
|
case 1:
|
|
@@ -133,11 +140,12 @@ PHXAxiosInstance.interceptors.response.use(function (response) { return response
|
|
|
133
140
|
return [4 /*yield*/, refreshAccessToken()];
|
|
134
141
|
case 2:
|
|
135
142
|
newToken = _b.sent();
|
|
143
|
+
originalRequest.headers = originalRequest.headers || {};
|
|
136
144
|
originalRequest.headers.Authorization = "Bearer ".concat(newToken);
|
|
137
145
|
return [2 /*return*/, PHXAxiosInstance(originalRequest)];
|
|
138
146
|
case 3:
|
|
139
|
-
|
|
140
|
-
return [2 /*return*/, Promise.reject(
|
|
147
|
+
e_1 = _b.sent();
|
|
148
|
+
return [2 /*return*/, Promise.reject(e_1)];
|
|
141
149
|
case 4: return [2 /*return*/, Promise.reject(error)];
|
|
142
150
|
}
|
|
143
151
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,23 +13,24 @@ var isServer = typeof window === 'undefined';
|
|
|
13
13
|
var PHXAxiosInstance = axios.create({
|
|
14
14
|
baseURL: publicUrl
|
|
15
15
|
});
|
|
16
|
+
// Lấy header (cookie + origin) khi chạy SSR
|
|
16
17
|
var getAuthHeaders = function () {
|
|
17
|
-
if (isServer)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
return {};
|
|
18
|
+
if (!isServer)
|
|
19
|
+
return {};
|
|
20
|
+
var cookieStore = cookies();
|
|
21
|
+
var cookieHeader = cookieStore
|
|
22
|
+
.getAll()
|
|
23
|
+
.map(function (_a) {
|
|
24
|
+
var name = _a.name, value = _a.value;
|
|
25
|
+
return "".concat(name, "=").concat(value);
|
|
26
|
+
})
|
|
27
|
+
.join('; ');
|
|
28
|
+
return {
|
|
29
|
+
Cookie: cookieHeader,
|
|
30
|
+
hostname: headers().get('origin') || undefined
|
|
31
|
+
};
|
|
32
32
|
};
|
|
33
|
+
// Lưu lại refresh token từ header của response (chỉ SSR)
|
|
33
34
|
var saveRefreshTokenServer = function (response) {
|
|
34
35
|
var _a;
|
|
35
36
|
var setCookieHeader = ((_a = response.headers['set-cookie']) === null || _a === void 0 ? void 0 : _a[0]) || '';
|
|
@@ -43,28 +44,33 @@ var saveRefreshTokenServer = function (response) {
|
|
|
43
44
|
expires: new Date(Date.now() + 365 * 24 * 60 * 60 * 1000)
|
|
44
45
|
});
|
|
45
46
|
};
|
|
47
|
+
// Gọi API refresh-token, đồng bộ hoá với AsyncLock
|
|
46
48
|
var refreshAccessToken = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
47
49
|
return __generator(this, function (_a) {
|
|
48
50
|
return [2 /*return*/, lock.acquire('refresh_token', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
49
|
-
var currentSession,
|
|
51
|
+
var currentSession, existing, url, response, newToken, updatedSession, err_1;
|
|
50
52
|
return __generator(this, function (_a) {
|
|
51
53
|
switch (_a.label) {
|
|
52
54
|
case 0:
|
|
53
55
|
currentSession = PHXFuncGetCookieSession();
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
existing = currentSession === null || currentSession === void 0 ? void 0 : currentSession.access_token;
|
|
57
|
+
if (existing)
|
|
58
|
+
return [2 /*return*/, existing
|
|
59
|
+
// Thực sự gọi API refresh
|
|
60
|
+
];
|
|
59
61
|
_a.label = 1;
|
|
60
62
|
case 1:
|
|
61
63
|
_a.trys.push([1, 3, , 4]);
|
|
62
|
-
|
|
64
|
+
url = "".concat(isServer ? headers().get('origin') : '', "/api/authenticate/refresh-token");
|
|
65
|
+
return [4 /*yield*/, axios.post(url, {}, { headers: getAuthHeaders() })];
|
|
63
66
|
case 2:
|
|
64
67
|
response = _a.sent();
|
|
65
68
|
newToken = response.data.token;
|
|
66
69
|
updatedSession = PHXFuncGetCookieSession();
|
|
67
|
-
saveCookiesClient({
|
|
70
|
+
saveCookiesClient({
|
|
71
|
+
value: __assign(__assign({}, updatedSession), { access_token: newToken })
|
|
72
|
+
});
|
|
73
|
+
// Lưu refresh token SSR nếu cần
|
|
68
74
|
if (isServer)
|
|
69
75
|
saveRefreshTokenServer(response);
|
|
70
76
|
return [2 /*return*/, newToken];
|
|
@@ -80,23 +86,23 @@ var refreshAccessToken = function () { return __awaiter(void 0, void 0, void 0,
|
|
|
80
86
|
}); })];
|
|
81
87
|
});
|
|
82
88
|
}); };
|
|
89
|
+
// Request interceptor: luôn thêm Authorization nếu có access_token
|
|
83
90
|
PHXAxiosInstance.interceptors.request.use(function (config) { return __awaiter(void 0, void 0, void 0, function () {
|
|
84
|
-
var
|
|
91
|
+
var session, token, err_2, fresh;
|
|
85
92
|
var _a;
|
|
86
93
|
return __generator(this, function (_b) {
|
|
87
94
|
switch (_b.label) {
|
|
88
95
|
case 0:
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
if (!
|
|
92
|
-
config.headers
|
|
96
|
+
session = PHXFuncGetCookieSession();
|
|
97
|
+
token = session === null || session === void 0 ? void 0 : session.access_token;
|
|
98
|
+
if (!token) return [3 /*break*/, 7];
|
|
99
|
+
config.headers = config.headers || {};
|
|
100
|
+
config.headers.Authorization = "Bearer ".concat(token);
|
|
93
101
|
if (!isServer) return [3 /*break*/, 7];
|
|
94
102
|
_b.label = 1;
|
|
95
103
|
case 1:
|
|
96
104
|
_b.trys.push([1, 3, , 7]);
|
|
97
|
-
return [4 /*yield*/, axios.post("".concat(internalUrl, "/authen/authenticate"), {}, {
|
|
98
|
-
headers: __assign({ Authorization: "Bearer ".concat(authTokenCookie) }, getAuthHeaders())
|
|
99
|
-
})];
|
|
105
|
+
return [4 /*yield*/, axios.post("".concat(internalUrl, "/authen/authenticate"), {}, { headers: __assign({ Authorization: "Bearer ".concat(token) }, getAuthHeaders()) })];
|
|
100
106
|
case 2:
|
|
101
107
|
_b.sent();
|
|
102
108
|
return [3 /*break*/, 7];
|
|
@@ -105,8 +111,8 @@ PHXAxiosInstance.interceptors.request.use(function (config) { return __awaiter(v
|
|
|
105
111
|
if (!(((_a = err_2.response) === null || _a === void 0 ? void 0 : _a.status) === 401)) return [3 /*break*/, 5];
|
|
106
112
|
return [4 /*yield*/, refreshAccessToken()];
|
|
107
113
|
case 4:
|
|
108
|
-
|
|
109
|
-
config.headers.Authorization = "Bearer ".concat(
|
|
114
|
+
fresh = _b.sent();
|
|
115
|
+
config.headers.Authorization = "Bearer ".concat(fresh);
|
|
110
116
|
return [3 /*break*/, 6];
|
|
111
117
|
case 5: throw err_2;
|
|
112
118
|
case 6: return [3 /*break*/, 7];
|
|
@@ -114,14 +120,15 @@ PHXAxiosInstance.interceptors.request.use(function (config) { return __awaiter(v
|
|
|
114
120
|
}
|
|
115
121
|
});
|
|
116
122
|
}); });
|
|
117
|
-
|
|
118
|
-
|
|
123
|
+
// Response interceptor: bắt 401, gọi refresh và retry
|
|
124
|
+
PHXAxiosInstance.interceptors.response.use(function (res) { return res; }, function (error) { return __awaiter(void 0, void 0, void 0, function () {
|
|
125
|
+
var originalRequest, newToken, e_1;
|
|
119
126
|
var _a;
|
|
120
127
|
return __generator(this, function (_b) {
|
|
121
128
|
switch (_b.label) {
|
|
122
129
|
case 0:
|
|
123
130
|
originalRequest = error.config;
|
|
124
|
-
if (!(((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 &&
|
|
131
|
+
if (!(((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401 && originalRequest._retry !== true)) return [3 /*break*/, 4];
|
|
125
132
|
originalRequest._retry = true;
|
|
126
133
|
_b.label = 1;
|
|
127
134
|
case 1:
|
|
@@ -129,11 +136,12 @@ PHXAxiosInstance.interceptors.response.use(function (response) { return response
|
|
|
129
136
|
return [4 /*yield*/, refreshAccessToken()];
|
|
130
137
|
case 2:
|
|
131
138
|
newToken = _b.sent();
|
|
139
|
+
originalRequest.headers = originalRequest.headers || {};
|
|
132
140
|
originalRequest.headers.Authorization = "Bearer ".concat(newToken);
|
|
133
141
|
return [2 /*return*/, PHXAxiosInstance(originalRequest)];
|
|
134
142
|
case 3:
|
|
135
|
-
|
|
136
|
-
return [2 /*return*/, Promise.reject(
|
|
143
|
+
e_1 = _b.sent();
|
|
144
|
+
return [2 /*return*/, Promise.reject(e_1)];
|
|
137
145
|
case 4: return [2 /*return*/, Promise.reject(error)];
|
|
138
146
|
}
|
|
139
147
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":";AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"axiosInstance.js","sourceRoot":"","sources":["../../src/axiosInstance.ts"],"names":[],"mappings":"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"}
|