nocal-auth-sdk 0.1.2 → 0.1.3
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.
- package/dist/NocalAuth.js +25 -15
- package/package.json +1 -1
package/dist/NocalAuth.js
CHANGED
|
@@ -64,7 +64,10 @@ export class NocalAuth {
|
|
|
64
64
|
]
|
|
65
65
|
.filter(Boolean)
|
|
66
66
|
.join(",");
|
|
67
|
-
|
|
67
|
+
// Xây dựng URL với tham số display=popup và các tham số khác
|
|
68
|
+
const authUrl = new URL(this.getAuthorizeUrl());
|
|
69
|
+
authUrl.searchParams.set("display", "popup");
|
|
70
|
+
const popup = window.open(authUrl.toString(), popupName, features);
|
|
68
71
|
if (!popup) {
|
|
69
72
|
throw new Error("POPUP_BLOCKED");
|
|
70
73
|
}
|
|
@@ -86,8 +89,13 @@ export class NocalAuth {
|
|
|
86
89
|
reject(new Error(message));
|
|
87
90
|
};
|
|
88
91
|
const handleMessage = (event) => {
|
|
92
|
+
console.group("📥 Nhận được window.message event:");
|
|
93
|
+
console.log("Origin của nguồn gửi:", event.origin);
|
|
94
|
+
console.log("Dữ liệu payload (event.data):", event.data);
|
|
95
|
+
console.log("Toàn bộ event object:", event);
|
|
89
96
|
if (settled)
|
|
90
97
|
return;
|
|
98
|
+
// Kiểm tra origin bảo mật
|
|
91
99
|
if (event.origin !== this.issuerOrigin) {
|
|
92
100
|
return;
|
|
93
101
|
}
|
|
@@ -95,26 +103,28 @@ export class NocalAuth {
|
|
|
95
103
|
if (!payload || typeof payload !== "object") {
|
|
96
104
|
return;
|
|
97
105
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
payload.
|
|
103
|
-
payload.
|
|
104
|
-
payload.
|
|
105
|
-
|
|
106
|
-
return;
|
|
106
|
+
// Nhận diện message từ Nocal Auth
|
|
107
|
+
if (payload.type !== "nocal_auth_result") {
|
|
108
|
+
const isLegacyMatch = payload.type === "nocal_auth" || payload.source === "nocal_auth";
|
|
109
|
+
if (!isLegacyMatch &&
|
|
110
|
+
!payload.code &&
|
|
111
|
+
!payload.token &&
|
|
112
|
+
!payload.data?.accessToken)
|
|
113
|
+
return;
|
|
107
114
|
}
|
|
108
115
|
cleanup();
|
|
109
116
|
if (payload.success === false || payload.error) {
|
|
110
117
|
rejectWith(typeof payload.error === "string" ? payload.error : "AUTH_FAILED");
|
|
111
118
|
return;
|
|
112
119
|
}
|
|
113
|
-
const
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
120
|
+
const rawData = payload.data ?? payload;
|
|
121
|
+
const data = {
|
|
122
|
+
code: rawData.code,
|
|
123
|
+
token: rawData.accessToken ?? rawData.token ?? rawData.access_token,
|
|
124
|
+
refreshToken: rawData.refreshToken,
|
|
125
|
+
user: rawData.user,
|
|
126
|
+
id_token: rawData.id_token,
|
|
127
|
+
state: rawData.state,
|
|
118
128
|
};
|
|
119
129
|
if (!data || Object.keys(data).length === 0) {
|
|
120
130
|
rejectWith("AUTH_DATA_MISSING");
|