nocal-auth-sdk 0.1.1 → 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.
Files changed (2) hide show
  1. package/dist/NocalAuth.js +25 -15
  2. 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
- const popup = window.open(this.getAuthorizeUrl(), popupName, features);
67
+ // Xây dựng URL với tham số display=popup 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
- const isValidPayload = payload.type === "nocal_auth" ||
99
- payload.source === "nocal_auth" ||
100
- Boolean(payload.code ||
101
- payload.token ||
102
- payload.access_token ||
103
- payload.id_token ||
104
- payload.error);
105
- if (!isValidPayload) {
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 data = payload.data ?? {
114
- code: payload.code,
115
- token: payload.token ?? payload.access_token,
116
- id_token: payload.id_token,
117
- state: payload.state,
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");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nocal-auth-sdk",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Nocal Auth - client-side SDK for Login with Nocal (popup flow)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",