@authon/js 0.1.6 → 0.1.7
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.js +17 -4
- package/dist/index.mjs +17 -4
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -339,6 +339,7 @@ var ModalRenderer = class {
|
|
|
339
339
|
// src/session.ts
|
|
340
340
|
var SessionManager = class {
|
|
341
341
|
accessToken = null;
|
|
342
|
+
refreshToken = null;
|
|
342
343
|
user = null;
|
|
343
344
|
refreshTimer = null;
|
|
344
345
|
apiUrl;
|
|
@@ -355,11 +356,15 @@ var SessionManager = class {
|
|
|
355
356
|
}
|
|
356
357
|
setSession(tokens) {
|
|
357
358
|
this.accessToken = tokens.accessToken;
|
|
359
|
+
this.refreshToken = tokens.refreshToken;
|
|
358
360
|
this.user = tokens.user;
|
|
359
|
-
|
|
361
|
+
if (tokens.expiresIn && tokens.expiresIn > 0) {
|
|
362
|
+
this.scheduleRefresh(tokens.expiresIn);
|
|
363
|
+
}
|
|
360
364
|
}
|
|
361
365
|
clearSession() {
|
|
362
366
|
this.accessToken = null;
|
|
367
|
+
this.refreshToken = null;
|
|
363
368
|
this.user = null;
|
|
364
369
|
if (this.refreshTimer) {
|
|
365
370
|
clearTimeout(this.refreshTimer);
|
|
@@ -368,10 +373,14 @@ var SessionManager = class {
|
|
|
368
373
|
}
|
|
369
374
|
scheduleRefresh(expiresIn) {
|
|
370
375
|
if (this.refreshTimer) clearTimeout(this.refreshTimer);
|
|
371
|
-
const refreshIn = Math.max((expiresIn - 60) * 1e3,
|
|
376
|
+
const refreshIn = Math.max((expiresIn - 60) * 1e3, 3e4);
|
|
372
377
|
this.refreshTimer = setTimeout(() => this.refresh(), refreshIn);
|
|
373
378
|
}
|
|
374
379
|
async refresh() {
|
|
380
|
+
if (!this.refreshToken) {
|
|
381
|
+
this.clearSession();
|
|
382
|
+
return null;
|
|
383
|
+
}
|
|
375
384
|
try {
|
|
376
385
|
const res = await fetch(`${this.apiUrl}/v1/auth/token/refresh`, {
|
|
377
386
|
method: "POST",
|
|
@@ -379,7 +388,8 @@ var SessionManager = class {
|
|
|
379
388
|
"Content-Type": "application/json",
|
|
380
389
|
"x-api-key": this.publishableKey
|
|
381
390
|
},
|
|
382
|
-
credentials: "include"
|
|
391
|
+
credentials: "include",
|
|
392
|
+
body: JSON.stringify({ refreshToken: this.refreshToken })
|
|
383
393
|
});
|
|
384
394
|
if (!res.ok) {
|
|
385
395
|
this.clearSession();
|
|
@@ -544,7 +554,10 @@ var Authon = class {
|
|
|
544
554
|
const handler = async (e) => {
|
|
545
555
|
if (e.data?.type === "authon-oauth-callback") {
|
|
546
556
|
window.removeEventListener("message", handler);
|
|
547
|
-
|
|
557
|
+
try {
|
|
558
|
+
popup?.close();
|
|
559
|
+
} catch {
|
|
560
|
+
}
|
|
548
561
|
try {
|
|
549
562
|
const tokens = await this.apiPost("/v1/auth/oauth/callback", {
|
|
550
563
|
code: e.data.code,
|
package/dist/index.mjs
CHANGED
|
@@ -312,6 +312,7 @@ var ModalRenderer = class {
|
|
|
312
312
|
// src/session.ts
|
|
313
313
|
var SessionManager = class {
|
|
314
314
|
accessToken = null;
|
|
315
|
+
refreshToken = null;
|
|
315
316
|
user = null;
|
|
316
317
|
refreshTimer = null;
|
|
317
318
|
apiUrl;
|
|
@@ -328,11 +329,15 @@ var SessionManager = class {
|
|
|
328
329
|
}
|
|
329
330
|
setSession(tokens) {
|
|
330
331
|
this.accessToken = tokens.accessToken;
|
|
332
|
+
this.refreshToken = tokens.refreshToken;
|
|
331
333
|
this.user = tokens.user;
|
|
332
|
-
|
|
334
|
+
if (tokens.expiresIn && tokens.expiresIn > 0) {
|
|
335
|
+
this.scheduleRefresh(tokens.expiresIn);
|
|
336
|
+
}
|
|
333
337
|
}
|
|
334
338
|
clearSession() {
|
|
335
339
|
this.accessToken = null;
|
|
340
|
+
this.refreshToken = null;
|
|
336
341
|
this.user = null;
|
|
337
342
|
if (this.refreshTimer) {
|
|
338
343
|
clearTimeout(this.refreshTimer);
|
|
@@ -341,10 +346,14 @@ var SessionManager = class {
|
|
|
341
346
|
}
|
|
342
347
|
scheduleRefresh(expiresIn) {
|
|
343
348
|
if (this.refreshTimer) clearTimeout(this.refreshTimer);
|
|
344
|
-
const refreshIn = Math.max((expiresIn - 60) * 1e3,
|
|
349
|
+
const refreshIn = Math.max((expiresIn - 60) * 1e3, 3e4);
|
|
345
350
|
this.refreshTimer = setTimeout(() => this.refresh(), refreshIn);
|
|
346
351
|
}
|
|
347
352
|
async refresh() {
|
|
353
|
+
if (!this.refreshToken) {
|
|
354
|
+
this.clearSession();
|
|
355
|
+
return null;
|
|
356
|
+
}
|
|
348
357
|
try {
|
|
349
358
|
const res = await fetch(`${this.apiUrl}/v1/auth/token/refresh`, {
|
|
350
359
|
method: "POST",
|
|
@@ -352,7 +361,8 @@ var SessionManager = class {
|
|
|
352
361
|
"Content-Type": "application/json",
|
|
353
362
|
"x-api-key": this.publishableKey
|
|
354
363
|
},
|
|
355
|
-
credentials: "include"
|
|
364
|
+
credentials: "include",
|
|
365
|
+
body: JSON.stringify({ refreshToken: this.refreshToken })
|
|
356
366
|
});
|
|
357
367
|
if (!res.ok) {
|
|
358
368
|
this.clearSession();
|
|
@@ -517,7 +527,10 @@ var Authon = class {
|
|
|
517
527
|
const handler = async (e) => {
|
|
518
528
|
if (e.data?.type === "authon-oauth-callback") {
|
|
519
529
|
window.removeEventListener("message", handler);
|
|
520
|
-
|
|
530
|
+
try {
|
|
531
|
+
popup?.close();
|
|
532
|
+
} catch {
|
|
533
|
+
}
|
|
521
534
|
try {
|
|
522
535
|
const tokens = await this.apiPost("/v1/auth/oauth/callback", {
|
|
523
536
|
code: e.data.code,
|