supaapps-auth 3.0.1 → 3.2.0
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/index.d.ts +3 -1
- package/dist/index.js +29 -11
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -36,7 +36,8 @@ declare enum Platforms {
|
|
|
36
36
|
GITHUB = "github",
|
|
37
37
|
APPLE = "apple",
|
|
38
38
|
LINKEDIN = "linkedin",
|
|
39
|
-
MICROSOFT = "microsoft"
|
|
39
|
+
MICROSOFT = "microsoft",
|
|
40
|
+
SUPPORT = "support"
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
declare class AuthManager {
|
|
@@ -80,6 +81,7 @@ declare class AuthManager {
|
|
|
80
81
|
private saveTokens;
|
|
81
82
|
loginUsingEmail(email: string, password: string): Promise<void>;
|
|
82
83
|
loginUsingPkce(code: string): Promise<void>;
|
|
84
|
+
loginUsingImpersonation(code: string, redirectUri?: string): Promise<void>;
|
|
83
85
|
logout(): Promise<void>;
|
|
84
86
|
static validateToken(authServer: string, bearerToken: string): Promise<UserTokenPayload>;
|
|
85
87
|
static resetInstance(): void;
|
package/dist/index.js
CHANGED
|
@@ -18,6 +18,7 @@ var Platforms = /* @__PURE__ */ ((Platforms2) => {
|
|
|
18
18
|
Platforms2["APPLE"] = "apple";
|
|
19
19
|
Platforms2["LINKEDIN"] = "linkedin";
|
|
20
20
|
Platforms2["MICROSOFT"] = "microsoft";
|
|
21
|
+
Platforms2["SUPPORT"] = "support";
|
|
21
22
|
return Platforms2;
|
|
22
23
|
})(Platforms || {});
|
|
23
24
|
|
|
@@ -107,10 +108,10 @@ var AuthManager = class _AuthManager {
|
|
|
107
108
|
return JSON.parse(atob(token.split(".")[1]));
|
|
108
109
|
}
|
|
109
110
|
generatePKCEPair() {
|
|
110
|
-
const verifier = localStorage.getItem("
|
|
111
|
-
const challenge = localStorage.getItem("
|
|
112
|
-
localStorage.setItem("
|
|
113
|
-
localStorage.setItem("
|
|
111
|
+
const verifier = localStorage.getItem("code_verifier") ?? generateCodeVerifier();
|
|
112
|
+
const challenge = localStorage.getItem("code_challenge") ?? generateCodeChallenge(verifier);
|
|
113
|
+
localStorage.setItem("code_verifier", verifier);
|
|
114
|
+
localStorage.setItem("code_challenge", challenge);
|
|
114
115
|
return { verifier, challenge };
|
|
115
116
|
}
|
|
116
117
|
async refreshAccessToken(isInitialization = false) {
|
|
@@ -365,17 +366,18 @@ var AuthManager = class _AuthManager {
|
|
|
365
366
|
this.saveTokens(response, false);
|
|
366
367
|
}
|
|
367
368
|
saveTokens(response, byRefresh) {
|
|
369
|
+
const eventType = byRefresh ? "user-updated" /* USER_UPDATED */ : "user-logged-in" /* USER_LOGGED_IN */;
|
|
370
|
+
const userPayload = this.tokenToPayload(response.data.access_token);
|
|
368
371
|
localStorage.setItem("access_token", response.data.access_token);
|
|
369
372
|
localStorage.setItem(
|
|
370
373
|
"refresh_token",
|
|
371
374
|
response.data.refresh_token
|
|
372
375
|
);
|
|
373
376
|
this.onStateChange({
|
|
374
|
-
type:
|
|
375
|
-
user:
|
|
377
|
+
type: eventType,
|
|
378
|
+
user: userPayload
|
|
376
379
|
});
|
|
377
|
-
|
|
378
|
-
localStorage.setItem("user", JSON.stringify(user));
|
|
380
|
+
localStorage.setItem("user", JSON.stringify(userPayload));
|
|
379
381
|
}
|
|
380
382
|
async loginUsingEmail(email, password) {
|
|
381
383
|
const response = await axios.post(
|
|
@@ -393,7 +395,7 @@ var AuthManager = class _AuthManager {
|
|
|
393
395
|
}
|
|
394
396
|
async loginUsingPkce(code) {
|
|
395
397
|
try {
|
|
396
|
-
const codeVerifier = localStorage.getItem("
|
|
398
|
+
const codeVerifier = localStorage.getItem("code_verifier");
|
|
397
399
|
if (!codeVerifier) {
|
|
398
400
|
throw new Error("Code verifier not found");
|
|
399
401
|
}
|
|
@@ -408,10 +410,26 @@ var AuthManager = class _AuthManager {
|
|
|
408
410
|
);
|
|
409
411
|
this.saveTokens(response, false);
|
|
410
412
|
} finally {
|
|
411
|
-
localStorage.removeItem("
|
|
412
|
-
localStorage.removeItem("
|
|
413
|
+
localStorage.removeItem("code_verifier");
|
|
414
|
+
localStorage.removeItem("code_challenge");
|
|
413
415
|
}
|
|
414
416
|
}
|
|
417
|
+
async loginUsingImpersonation(code, redirectUri) {
|
|
418
|
+
const response = await axios.post(
|
|
419
|
+
`${this.authServer}auth/impersonation_exchange`,
|
|
420
|
+
{
|
|
421
|
+
code,
|
|
422
|
+
...redirectUri ? { redirect_uri: redirectUri } : {}
|
|
423
|
+
}
|
|
424
|
+
);
|
|
425
|
+
if (response.data.message || response.data.error) {
|
|
426
|
+
throw new Error(response.data.message || response.data.error);
|
|
427
|
+
}
|
|
428
|
+
if (!response.data.access_token) {
|
|
429
|
+
throw new Error("Something went wrong");
|
|
430
|
+
}
|
|
431
|
+
this.saveTokens(response, false);
|
|
432
|
+
}
|
|
415
433
|
async logout() {
|
|
416
434
|
try {
|
|
417
435
|
const accessToken = localStorage.getItem("access_token");
|