@bravely-studios/account-web 0.3.10 → 0.4.1
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/README.md +159 -5
- package/dist/ActivationStateMachine.d.ts +1 -1
- package/dist/ActivationStateMachine.d.ts.map +1 -1
- package/dist/ActivationStateMachine.js +6 -2
- package/dist/ActivationStateMachine.js.map +1 -1
- package/dist/BravelyAccountManager.d.ts +108 -2
- package/dist/BravelyAccountManager.d.ts.map +1 -1
- package/dist/BravelyAccountManager.js +376 -29
- package/dist/BravelyAccountManager.js.map +1 -1
- package/dist/components/BravelyProviderButtons.d.ts.map +1 -1
- package/dist/components/BravelyProviderButtons.js.map +1 -1
- package/dist/components/BravelySignInScreen.d.ts +65 -0
- package/dist/components/BravelySignInScreen.d.ts.map +1 -0
- package/dist/components/BravelySignInScreen.js +156 -0
- package/dist/components/BravelySignInScreen.js.map +1 -0
- package/dist/components/OfferSlotGrid.d.ts +228 -0
- package/dist/components/OfferSlotGrid.d.ts.map +1 -0
- package/dist/components/OfferSlotGrid.js +554 -0
- package/dist/components/OfferSlotGrid.js.map +1 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/installMetrics.d.ts +40 -0
- package/dist/installMetrics.d.ts.map +1 -0
- package/dist/installMetrics.js +128 -0
- package/dist/installMetrics.js.map +1 -0
- package/dist/storage.d.ts +23 -10
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +52 -16
- package/dist/storage.js.map +1 -1
- package/dist/types.d.ts +8 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -20,9 +20,18 @@ const KEY_BAS = "bas";
|
|
|
20
20
|
const KEY_REFRESH = "refresh_token";
|
|
21
21
|
const KEY_BA_ID = "ba_id";
|
|
22
22
|
const KEY_EMAIL = "email";
|
|
23
|
+
const KEY_EXPIRES_AT = "expires_at";
|
|
23
24
|
const KEY_DPOP_JKT = "dpop_jkt_thumbprint";
|
|
24
25
|
const KEY_PKCE_VERIFIER = "pkce_verifier";
|
|
25
26
|
const KEY_PKCE_STATE = "pkce_state";
|
|
27
|
+
/**
|
|
28
|
+
* Proactive refresh window (D4): when the BAS has less than this much life
|
|
29
|
+
* left (or is already past `expires_at`), the manager rotates the session in
|
|
30
|
+
* the background via `grant_type=refresh_token` instead of waiting for a 401.
|
|
31
|
+
* BAS access tokens live 14 days; 48h is comfortably inside that while still
|
|
32
|
+
* rotating well before expiry for any returning visitor.
|
|
33
|
+
*/
|
|
34
|
+
export const PRE_EXPIRY_REFRESH_WINDOW_MS = 48 * 60 * 60 * 1000;
|
|
26
35
|
export class BravelyAccountManager {
|
|
27
36
|
cfg;
|
|
28
37
|
storage;
|
|
@@ -50,6 +59,13 @@ export class BravelyAccountManager {
|
|
|
50
59
|
* (e.g. after reading it from native bridge / first-launch storage).
|
|
51
60
|
*/
|
|
52
61
|
installId = null;
|
|
62
|
+
/**
|
|
63
|
+
* Single-flight guard for the refresh grant: concurrent 401s / proactive
|
|
64
|
+
* refreshes join the in-flight rotation instead of racing the one-time-use
|
|
65
|
+
* refresh token (a second concurrent presentation of the same token would
|
|
66
|
+
* trip the server's family reuse detection and revoke the session).
|
|
67
|
+
*/
|
|
68
|
+
refreshInFlight = null;
|
|
53
69
|
constructor(config) {
|
|
54
70
|
if (!config.authority)
|
|
55
71
|
throw new Error("authority is required");
|
|
@@ -69,7 +85,7 @@ export class BravelyAccountManager {
|
|
|
69
85
|
redirectUri,
|
|
70
86
|
scope: config.scope ?? DEFAULT_SCOPE,
|
|
71
87
|
libName: config.libName ?? "bravely-account-web",
|
|
72
|
-
libVersion: config.libVersion ?? "0.
|
|
88
|
+
libVersion: config.libVersion ?? "0.4.1",
|
|
73
89
|
};
|
|
74
90
|
this.storage = config.storage ?? defaultStorage();
|
|
75
91
|
// Optional PHASE-2 install→account reconciliation id. When the host omits
|
|
@@ -137,6 +153,16 @@ export class BravelyAccountManager {
|
|
|
137
153
|
* Hydrate from persistent storage and (if a BAS is present) verify it
|
|
138
154
|
* against the identity API. Call once on page load before rendering UI
|
|
139
155
|
* that depends on `getState()`.
|
|
156
|
+
*
|
|
157
|
+
* D4 session-forever behavior:
|
|
158
|
+
* - A stored BAS yields `signed_in` immediately (cache-backed); the
|
|
159
|
+
* entitlement check runs in the background. Transport failures NEVER
|
|
160
|
+
* wipe tokens or flip the state to signed_out.
|
|
161
|
+
* - A BAS near/past `expires_at` triggers a background refresh-grant
|
|
162
|
+
* rotation (`PRE_EXPIRY_REFRESH_WINDOW_MS`).
|
|
163
|
+
* - No BAS but a stored refresh token → the session is resurrected via
|
|
164
|
+
* `grant_type=refresh_token` before giving up (sessions survive even
|
|
165
|
+
* if the access token row was lost).
|
|
140
166
|
*/
|
|
141
167
|
async restore() {
|
|
142
168
|
await this.cache.hydrate();
|
|
@@ -144,6 +170,25 @@ export class BravelyAccountManager {
|
|
|
144
170
|
const baId = await this.storage.get(KEY_BA_ID);
|
|
145
171
|
const email = await this.storage.get(KEY_EMAIL);
|
|
146
172
|
if (!bas || !baId || !email) {
|
|
173
|
+
// No usable BAS triple — but a durable refresh token can still
|
|
174
|
+
// resurrect the session without any user interaction.
|
|
175
|
+
const refresh = await this.storage.get(KEY_REFRESH);
|
|
176
|
+
if (refresh) {
|
|
177
|
+
this.activation.transition("app_launched", { bas_present: true });
|
|
178
|
+
const outcome = await this.refreshSession();
|
|
179
|
+
if (outcome === "refreshed") {
|
|
180
|
+
// persistRefreshedToken set the signed_in state; run the
|
|
181
|
+
// authoritative entitlement check in the background.
|
|
182
|
+
void this.refreshEntitlements().catch(() => undefined);
|
|
183
|
+
return this.getState();
|
|
184
|
+
}
|
|
185
|
+
// definitive_failure already cleared storage; transient failures
|
|
186
|
+
// KEEP the refresh token for the next launch (never wipe on
|
|
187
|
+
// transport failure) — but without a BAS there is no session to
|
|
188
|
+
// serve, so surface signed_out + pending_user_action.
|
|
189
|
+
this.activation.transition("bas_invalid");
|
|
190
|
+
return this.setState({ kind: "signed_out" });
|
|
191
|
+
}
|
|
147
192
|
this.activation.transition("app_launched_no_session", { bas_present: false });
|
|
148
193
|
return this.setState({ kind: "signed_out" });
|
|
149
194
|
}
|
|
@@ -160,6 +205,12 @@ export class BravelyAccountManager {
|
|
|
160
205
|
this.activation.force("fresh_launch_restoration");
|
|
161
206
|
}
|
|
162
207
|
this.setState({ kind: "signed_in", ba_id: baId, email, bas, entitlements: cachedEntitlements });
|
|
208
|
+
// Pre-expiry rotation: refresh in the background when the BAS is inside
|
|
209
|
+
// the proactive window (or already expired). Single-flight, so the
|
|
210
|
+
// entitlement refresh below joining a 401-triggered rotation is safe.
|
|
211
|
+
if (await this.shouldProactivelyRefresh()) {
|
|
212
|
+
void this.refreshSession().catch(() => undefined);
|
|
213
|
+
}
|
|
163
214
|
// Refresh in the background; failures fall back to cache.
|
|
164
215
|
void this.refreshEntitlements().catch(() => {
|
|
165
216
|
// Already handled by transition logic; nothing else to do.
|
|
@@ -223,6 +274,7 @@ export class BravelyAccountManager {
|
|
|
223
274
|
async signOut() {
|
|
224
275
|
try {
|
|
225
276
|
const bas = await this.storage.get(KEY_BAS);
|
|
277
|
+
const refresh = await this.storage.get(KEY_REFRESH);
|
|
226
278
|
if (bas) {
|
|
227
279
|
// Fire-and-forget revoke; if the OAuth server doesn't have a revoke
|
|
228
280
|
// endpoint yet (Gate 1), this is a no-op. Wrapped in try/catch so
|
|
@@ -230,7 +282,11 @@ export class BravelyAccountManager {
|
|
|
230
282
|
await this.fetchWithDeprecation(`${this.cfg.authority}/oauth/revoke`, {
|
|
231
283
|
method: "POST",
|
|
232
284
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
233
|
-
body: new URLSearchParams({
|
|
285
|
+
body: new URLSearchParams({
|
|
286
|
+
token: bas,
|
|
287
|
+
token_type_hint: "access_token",
|
|
288
|
+
client_id: this.cfg.appSlug,
|
|
289
|
+
}).toString(),
|
|
234
290
|
}).catch((err) => {
|
|
235
291
|
// Best-effort revoke; local sign-out proceeds regardless. Breadcrumb
|
|
236
292
|
// the cause (never the token) so a server-side revoke regression is
|
|
@@ -238,19 +294,50 @@ export class BravelyAccountManager {
|
|
|
238
294
|
this.log("signout_revoke_failed", { step: "oauth_revoke", error: errorMessage(err) });
|
|
239
295
|
});
|
|
240
296
|
}
|
|
297
|
+
// With sliding-365d refresh families (D4), explicit sign-out should
|
|
298
|
+
// also revoke the durable refresh family — RFC 7009 form, best-effort
|
|
299
|
+
// (the router's revocation endpoint is still pending; sending now means
|
|
300
|
+
// already-shipped libs revoke correctly the day it lands).
|
|
301
|
+
if (refresh) {
|
|
302
|
+
await this.fetchWithDeprecation(`${this.cfg.authority}/oauth/revoke`, {
|
|
303
|
+
method: "POST",
|
|
304
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
305
|
+
body: new URLSearchParams({
|
|
306
|
+
token: refresh,
|
|
307
|
+
token_type_hint: "refresh_token",
|
|
308
|
+
client_id: this.cfg.appSlug,
|
|
309
|
+
}).toString(),
|
|
310
|
+
}).catch((err) => {
|
|
311
|
+
this.log("signout_revoke_failed", {
|
|
312
|
+
step: "oauth_revoke_refresh",
|
|
313
|
+
error: errorMessage(err),
|
|
314
|
+
});
|
|
315
|
+
});
|
|
316
|
+
}
|
|
241
317
|
}
|
|
242
318
|
finally {
|
|
243
|
-
await this.
|
|
244
|
-
await this.storage.remove(KEY_REFRESH);
|
|
245
|
-
await this.storage.remove(KEY_BA_ID);
|
|
246
|
-
await this.storage.remove(KEY_EMAIL);
|
|
247
|
-
await this.storage.remove(KEY_DPOP_JKT);
|
|
248
|
-
await this.cache.invalidate();
|
|
249
|
-
this.dpopKeypairPromise = null;
|
|
250
|
-
this.dpopJktThumbprint = null;
|
|
251
|
-
this.setState({ kind: "signed_out" });
|
|
319
|
+
await this.clearLocalSession();
|
|
252
320
|
}
|
|
253
321
|
}
|
|
322
|
+
/**
|
|
323
|
+
* Drop every locally-persisted session artifact and flip to `signed_out`.
|
|
324
|
+
* The DESTRUCTIVE half of sign-out — only ever called from explicit user
|
|
325
|
+
* sign-out or a DEFINITIVE auth failure (`invalid_grant` on the refresh
|
|
326
|
+
* grant, or a 401 that survived a successful refresh-and-retry). Transport
|
|
327
|
+
* failures must never reach this.
|
|
328
|
+
*/
|
|
329
|
+
async clearLocalSession() {
|
|
330
|
+
await this.storage.remove(KEY_BAS);
|
|
331
|
+
await this.storage.remove(KEY_REFRESH);
|
|
332
|
+
await this.storage.remove(KEY_BA_ID);
|
|
333
|
+
await this.storage.remove(KEY_EMAIL);
|
|
334
|
+
await this.storage.remove(KEY_EXPIRES_AT);
|
|
335
|
+
await this.storage.remove(KEY_DPOP_JKT);
|
|
336
|
+
await this.cache.invalidate();
|
|
337
|
+
this.dpopKeypairPromise = null;
|
|
338
|
+
this.dpopJktThumbprint = null;
|
|
339
|
+
this.setState({ kind: "signed_out" });
|
|
340
|
+
}
|
|
254
341
|
/**
|
|
255
342
|
* Read entitlements, serving the cached row if fresh and refreshing
|
|
256
343
|
* opportunistically. Always returns an array (possibly empty).
|
|
@@ -353,8 +440,9 @@ export class BravelyAccountManager {
|
|
|
353
440
|
* introduced in the Mac/iOS v2 onboarding port.
|
|
354
441
|
*
|
|
355
442
|
* Throws if the user is not signed in (`not_signed_in`) or if the server
|
|
356
|
-
* returns a non-2xx status.
|
|
357
|
-
*
|
|
443
|
+
* returns a non-2xx status. A definitive 401 (refresh-and-retry exhausted)
|
|
444
|
+
* is surfaced as `not_signed_in`; a 401 riding a transient refresh failure
|
|
445
|
+
* keeps the session and throws a plain request failure.
|
|
358
446
|
*/
|
|
359
447
|
async getAccountEntitlements() {
|
|
360
448
|
const bas = await this.requireBas();
|
|
@@ -362,8 +450,12 @@ export class BravelyAccountManager {
|
|
|
362
450
|
method: "GET",
|
|
363
451
|
});
|
|
364
452
|
if (res.status === 401) {
|
|
365
|
-
|
|
366
|
-
|
|
453
|
+
// `fetchWithBas` already refreshed-and-retried; a surviving 401 either
|
|
454
|
+
// cleared the session (definitive ⇒ not_signed_in) or rode a transient
|
|
455
|
+
// refresh failure (session kept ⇒ plain request failure).
|
|
456
|
+
if (await this.sessionWasCleared())
|
|
457
|
+
throw new Error("not_signed_in");
|
|
458
|
+
throw new Error("getAccountEntitlements failed: 401");
|
|
367
459
|
}
|
|
368
460
|
if (!res.ok) {
|
|
369
461
|
throw new Error(`getAccountEntitlements failed: ${res.status}`);
|
|
@@ -413,7 +505,11 @@ export class BravelyAccountManager {
|
|
|
413
505
|
try {
|
|
414
506
|
const url = new URL("/api/entitlements", this.cfg.identityOrigin);
|
|
415
507
|
url.searchParams.set("app", this.cfg.appSlug);
|
|
416
|
-
|
|
508
|
+
// Re-read the BAS each attempt: a mid-poll refresh rotation (401 →
|
|
509
|
+
// refresh-then-retry inside fetchWithBas) replaces the stored token,
|
|
510
|
+
// and polling on with the stale capture would 401 every round.
|
|
511
|
+
const currentBas = (await this.storage.get(KEY_BAS)) ?? bas;
|
|
512
|
+
const res = await this.fetchWithBas(url.toString(), currentBas, {
|
|
417
513
|
method: "GET",
|
|
418
514
|
});
|
|
419
515
|
if (res.ok) {
|
|
@@ -514,7 +610,12 @@ export class BravelyAccountManager {
|
|
|
514
610
|
await this.persistToken(data);
|
|
515
611
|
return this.getState();
|
|
516
612
|
}
|
|
517
|
-
|
|
613
|
+
/**
|
|
614
|
+
* Persist the token + identity rows shared by the sign-in and refresh
|
|
615
|
+
* legs (BAS, rotated refresh token, ba_id, email, expires_at, lib version
|
|
616
|
+
* policy). Returns the inline entitlement snapshot.
|
|
617
|
+
*/
|
|
618
|
+
async persistSessionCore(data) {
|
|
518
619
|
const bas = "access_token" in data ? data.access_token : data.bas;
|
|
519
620
|
const refresh = data.refresh_token ?? null;
|
|
520
621
|
await this.storage.set(KEY_BAS, bas);
|
|
@@ -522,11 +623,19 @@ export class BravelyAccountManager {
|
|
|
522
623
|
await this.storage.set(KEY_REFRESH, refresh);
|
|
523
624
|
await this.storage.set(KEY_BA_ID, data.bravely_account_id);
|
|
524
625
|
await this.storage.set(KEY_EMAIL, data.email);
|
|
626
|
+
// Track the BAS expiry client-side so the proactive refresh loop can
|
|
627
|
+
// rotate before a 401 ever happens (D4).
|
|
628
|
+
if (data.expires_at) {
|
|
629
|
+
await this.storage.set(KEY_EXPIRES_AT, data.expires_at);
|
|
630
|
+
}
|
|
525
631
|
if ("bravely_lib_version" in data && data.bravely_lib_version) {
|
|
526
632
|
this.libVersionPolicy = data.bravely_lib_version;
|
|
527
633
|
}
|
|
634
|
+
return { bas, entitlements: (data.active_entitlements ?? []) };
|
|
635
|
+
}
|
|
636
|
+
async persistToken(data) {
|
|
637
|
+
const { bas, entitlements } = await this.persistSessionCore(data);
|
|
528
638
|
// Active entitlements ride along on Gate 1 BAS exchange (B6).
|
|
529
|
-
const entitlements = (data.active_entitlements ?? []);
|
|
530
639
|
await this.cache.update({ entitlements });
|
|
531
640
|
this.setState({
|
|
532
641
|
kind: "signed_in",
|
|
@@ -543,6 +652,172 @@ export class BravelyAccountManager {
|
|
|
543
652
|
this.activation.transition("entitlement_check_success_none");
|
|
544
653
|
}
|
|
545
654
|
}
|
|
655
|
+
/**
|
|
656
|
+
* Persist a `grant_type=refresh_token` rotation result. Differs from the
|
|
657
|
+
* sign-in leg deliberately:
|
|
658
|
+
* - The inline entitlement snapshot is best-effort on the server (an RC
|
|
659
|
+
* hiccup yields `[]` so rotation never fails) — so an EMPTY snapshot
|
|
660
|
+
* must not downgrade the 72h offline cache mid-session. Non-empty
|
|
661
|
+
* snapshots update cache + state; empty ones leave the authoritative
|
|
662
|
+
* `/api/entitlements` check (which runs on every restore) in charge.
|
|
663
|
+
* - No `entitlement_check_*` activation events are fired here for the
|
|
664
|
+
* same reason; only `bas_found` advances the restore lane.
|
|
665
|
+
*/
|
|
666
|
+
async persistRefreshedToken(data) {
|
|
667
|
+
const { bas, entitlements } = await this.persistSessionCore(data);
|
|
668
|
+
// Contract enforcement (router ≥1.6.0 always rotates): if a 200 refresh
|
|
669
|
+
// response somehow lacks the rotated token, the OLD token is spent
|
|
670
|
+
// server-side — presenting it again later would read as reuse and revoke
|
|
671
|
+
// the family. Drop it: the fresh BAS still serves its full window, and
|
|
672
|
+
// the next 401 walks the no_refresh_token lane instead of a false-reuse
|
|
673
|
+
// revoke.
|
|
674
|
+
if (!data.refresh_token) {
|
|
675
|
+
await this.storage.remove(KEY_REFRESH);
|
|
676
|
+
this.log("session_refresh_missing_rotated_token", { step: "oauth_refresh" });
|
|
677
|
+
}
|
|
678
|
+
if (entitlements.length > 0) {
|
|
679
|
+
await this.cache.update({ entitlements, dpopJktThumbprint: this.dpopJktThumbprint });
|
|
680
|
+
}
|
|
681
|
+
const effective = entitlements.length > 0
|
|
682
|
+
? entitlements
|
|
683
|
+
: this.state.kind === "signed_in"
|
|
684
|
+
? this.state.entitlements
|
|
685
|
+
: (this.cache.raw()?.entitlements ?? []);
|
|
686
|
+
this.setState({
|
|
687
|
+
kind: "signed_in",
|
|
688
|
+
ba_id: data.bravely_account_id,
|
|
689
|
+
email: data.email,
|
|
690
|
+
bas,
|
|
691
|
+
entitlements: effective,
|
|
692
|
+
});
|
|
693
|
+
this.activation.transition("bas_found");
|
|
694
|
+
}
|
|
695
|
+
/**
|
|
696
|
+
* True when the stored BAS is inside the proactive-refresh window (or past
|
|
697
|
+
* expiry). Unknown expiry (legacy rows) ⇒ false — the 401-retry path
|
|
698
|
+
* covers those sessions.
|
|
699
|
+
*/
|
|
700
|
+
async shouldProactivelyRefresh() {
|
|
701
|
+
const expiresAt = await this.storage.get(KEY_EXPIRES_AT);
|
|
702
|
+
if (!expiresAt)
|
|
703
|
+
return false;
|
|
704
|
+
const parsed = Date.parse(expiresAt);
|
|
705
|
+
if (Number.isNaN(parsed))
|
|
706
|
+
return false;
|
|
707
|
+
return parsed - Date.now() < PRE_EXPIRY_REFRESH_WINDOW_MS;
|
|
708
|
+
}
|
|
709
|
+
/**
|
|
710
|
+
* Rotate the session via `POST {authority}/oauth/token` with
|
|
711
|
+
* `grant_type=refresh_token` (router ≥1.6.0). Single-flight: concurrent
|
|
712
|
+
* callers join the in-flight rotation (the refresh token is one-time-use;
|
|
713
|
+
* racing it would trip server-side reuse detection).
|
|
714
|
+
*
|
|
715
|
+
* Cross-TAB races are handled by two layers: (a) where available, a Web
|
|
716
|
+
* Lock (`bravely:session_refresh:<slug>`) serializes rotations across tabs
|
|
717
|
+
* sharing the same IndexedDB token; (b) the token is re-read inside the
|
|
718
|
+
* critical section, and if another tab already rotated (stored BAS changed
|
|
719
|
+
* while we waited) the rotation is skipped. Browsers without Web Locks
|
|
720
|
+
* fall back to the server's 30s idempotent-retry grace for near-
|
|
721
|
+
* simultaneous presentations of the same token.
|
|
722
|
+
*
|
|
723
|
+
* Destructive ONLY on a definitive rejection (`invalid_grant` / 401):
|
|
724
|
+
* transport failures, 5xx, and 429 keep every token in place.
|
|
725
|
+
*/
|
|
726
|
+
refreshSession() {
|
|
727
|
+
if (!this.refreshInFlight) {
|
|
728
|
+
this.refreshInFlight = this.refreshSessionCrossTab().finally(() => {
|
|
729
|
+
this.refreshInFlight = null;
|
|
730
|
+
});
|
|
731
|
+
}
|
|
732
|
+
return this.refreshInFlight;
|
|
733
|
+
}
|
|
734
|
+
async refreshSessionCrossTab() {
|
|
735
|
+
const basBefore = await this.storage.get(KEY_BAS);
|
|
736
|
+
const run = async () => {
|
|
737
|
+
// Another tab may have rotated while we waited on the lock — adopt its
|
|
738
|
+
// result instead of spending a second rotation.
|
|
739
|
+
if (basBefore) {
|
|
740
|
+
const basNow = await this.storage.get(KEY_BAS);
|
|
741
|
+
if (basNow && basNow !== basBefore)
|
|
742
|
+
return "refreshed";
|
|
743
|
+
}
|
|
744
|
+
return this.doRefreshSession();
|
|
745
|
+
};
|
|
746
|
+
const locks = globalThis.navigator?.locks;
|
|
747
|
+
if (locks?.request) {
|
|
748
|
+
try {
|
|
749
|
+
return await locks.request(`bravely:session_refresh:${this.cfg.appSlug}`, run);
|
|
750
|
+
}
|
|
751
|
+
catch (error) {
|
|
752
|
+
// Lock machinery failure (not a refresh verdict) — fall through to
|
|
753
|
+
// the unlocked path rather than failing the rotation.
|
|
754
|
+
this.log("session_refresh_lock_error", {
|
|
755
|
+
step: "oauth_refresh",
|
|
756
|
+
error: errorMessage(error),
|
|
757
|
+
});
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
return run();
|
|
761
|
+
}
|
|
762
|
+
async doRefreshSession() {
|
|
763
|
+
const refresh = await this.storage.get(KEY_REFRESH);
|
|
764
|
+
if (!refresh)
|
|
765
|
+
return "no_refresh_token";
|
|
766
|
+
try {
|
|
767
|
+
const res = await this.fetchWithDeprecation(`${this.cfg.authority}/oauth/token`, {
|
|
768
|
+
method: "POST",
|
|
769
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
770
|
+
body: new URLSearchParams({
|
|
771
|
+
grant_type: "refresh_token",
|
|
772
|
+
refresh_token: refresh,
|
|
773
|
+
client_id: this.cfg.appSlug,
|
|
774
|
+
}).toString(),
|
|
775
|
+
});
|
|
776
|
+
if (res.ok) {
|
|
777
|
+
const data = (await res.json());
|
|
778
|
+
await this.persistRefreshedToken(data);
|
|
779
|
+
this.log("session_refreshed", { step: "oauth_refresh" });
|
|
780
|
+
return "refreshed";
|
|
781
|
+
}
|
|
782
|
+
let err = {};
|
|
783
|
+
try {
|
|
784
|
+
err = (await res.json());
|
|
785
|
+
}
|
|
786
|
+
catch {
|
|
787
|
+
/* ignore non-JSON error bodies */
|
|
788
|
+
}
|
|
789
|
+
// `invalid_grant` covers invalid / revoked / reuse-detected tokens —
|
|
790
|
+
// the server's uniform rejection. 401 = invalid_client-class failures.
|
|
791
|
+
// Both are definitive: the session cannot be recovered.
|
|
792
|
+
if (err.error === "invalid_grant" || res.status === 401) {
|
|
793
|
+
this.log("session_refresh_rejected", {
|
|
794
|
+
step: "oauth_refresh",
|
|
795
|
+
status: res.status,
|
|
796
|
+
error: err.error ?? null,
|
|
797
|
+
});
|
|
798
|
+
await this.clearLocalSession();
|
|
799
|
+
return "definitive_failure";
|
|
800
|
+
}
|
|
801
|
+
// 429 / 5xx / anything else: server-side trouble, NOT a verdict on the
|
|
802
|
+
// token. Keep the session and retry later.
|
|
803
|
+
this.log("session_refresh_http_error", {
|
|
804
|
+
step: "oauth_refresh",
|
|
805
|
+
status: res.status,
|
|
806
|
+
error: err.error ?? null,
|
|
807
|
+
});
|
|
808
|
+
return "transient_failure";
|
|
809
|
+
}
|
|
810
|
+
catch (error) {
|
|
811
|
+
// Network failure (offline) or the 426 kill-switch. Neither is a
|
|
812
|
+
// verdict on the refresh token — tokens are NEVER wiped on transport
|
|
813
|
+
// failure (D4).
|
|
814
|
+
this.log("session_refresh_network_error", {
|
|
815
|
+
step: "oauth_refresh",
|
|
816
|
+
error: errorMessage(error),
|
|
817
|
+
});
|
|
818
|
+
return "transient_failure";
|
|
819
|
+
}
|
|
820
|
+
}
|
|
546
821
|
async refreshEntitlements() {
|
|
547
822
|
const bas = await this.storage.get(KEY_BAS);
|
|
548
823
|
if (!bas)
|
|
@@ -554,13 +829,26 @@ export class BravelyAccountManager {
|
|
|
554
829
|
method: "GET",
|
|
555
830
|
});
|
|
556
831
|
if (res.status === 401) {
|
|
557
|
-
//
|
|
558
|
-
|
|
832
|
+
// `fetchWithBas` already ran refresh-then-retry-once and cleared the
|
|
833
|
+
// session iff the failure was definitive. Only mirror that verdict —
|
|
834
|
+
// never sign out on a 401 that rode a transient refresh failure.
|
|
835
|
+
if (await this.sessionWasCleared()) {
|
|
836
|
+
this.log("entitlement_refresh_unauthorized", {
|
|
837
|
+
step: "refresh_entitlements",
|
|
838
|
+
status: 401,
|
|
839
|
+
});
|
|
840
|
+
return [];
|
|
841
|
+
}
|
|
842
|
+
const cached = this.cache.getCached();
|
|
843
|
+
this.log("entitlement_refresh_unauthorized_transient", {
|
|
559
844
|
step: "refresh_entitlements",
|
|
560
845
|
status: 401,
|
|
846
|
+
entitlement_cache_present: !!cached,
|
|
847
|
+
});
|
|
848
|
+
this.activation.transition("entitlement_check_failure", {
|
|
849
|
+
entitlement_cache_present: !!cached,
|
|
561
850
|
});
|
|
562
|
-
|
|
563
|
-
return [];
|
|
851
|
+
return cached?.entitlements ?? [];
|
|
564
852
|
}
|
|
565
853
|
if (!res.ok) {
|
|
566
854
|
const cached = this.cache.getCached();
|
|
@@ -609,15 +897,74 @@ export class BravelyAccountManager {
|
|
|
609
897
|
* the current router accepts Bearer on shared BAS endpoints, but attach a
|
|
610
898
|
* real RFC 9449 proof in the `DPoP` header so Gate 2 traffic is already
|
|
611
899
|
* exercising proof generation.
|
|
900
|
+
*
|
|
901
|
+
* D4 401 handling — refresh-then-retry-once: a 401 triggers ONE refresh
|
|
902
|
+
* grant; on success the request is retried with the new BAS. Destructive
|
|
903
|
+
* sign-out happens ONLY when the failure is definitive:
|
|
904
|
+
* - the refresh grant itself was rejected (`invalid_grant`/401), or
|
|
905
|
+
* - there is no refresh token to present, or
|
|
906
|
+
* - the retried request STILL came back 401 after a successful refresh.
|
|
907
|
+
* A transient refresh failure (offline/5xx/429) returns the original 401
|
|
908
|
+
* response WITHOUT touching the stored session — callers must treat a 401
|
|
909
|
+
* with the session still present as a transient failure (serve cache).
|
|
612
910
|
*/
|
|
613
911
|
async fetchWithBas(input, bas, init = {}) {
|
|
614
|
-
const
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
912
|
+
const doFetch = async (token) => {
|
|
913
|
+
const method = init.method ?? "GET";
|
|
914
|
+
const headers = new Headers(init.headers);
|
|
915
|
+
headers.set("Authorization", `Bearer ${token}`);
|
|
916
|
+
const proof = await this.dpopProof(method, input, token);
|
|
917
|
+
if (proof)
|
|
918
|
+
headers.set("DPoP", proof);
|
|
919
|
+
return this.fetchWithDeprecation(input, { ...init, method, headers });
|
|
920
|
+
};
|
|
921
|
+
const res = await doFetch(bas);
|
|
922
|
+
if (res.status !== 401)
|
|
923
|
+
return res;
|
|
924
|
+
// Another caller may have already rotated the session while this request
|
|
925
|
+
// was in flight (the caller captured a now-stale BAS). Retry with the
|
|
926
|
+
// current stored token before spending a rotation.
|
|
927
|
+
const current = await this.storage.get(KEY_BAS);
|
|
928
|
+
if (current && current !== bas) {
|
|
929
|
+
const retriedWithCurrent = await doFetch(current);
|
|
930
|
+
if (retriedWithCurrent.status !== 401)
|
|
931
|
+
return retriedWithCurrent;
|
|
932
|
+
// Still 401 — fall through to a real refresh with the live token.
|
|
933
|
+
}
|
|
934
|
+
const outcome = await this.refreshSession();
|
|
935
|
+
if (outcome === "refreshed") {
|
|
936
|
+
const rotated = await this.storage.get(KEY_BAS);
|
|
937
|
+
if (!rotated)
|
|
938
|
+
return res; // defensive; persistRefreshedToken always writes it
|
|
939
|
+
const retried = await doFetch(rotated);
|
|
940
|
+
if (retried.status === 401) {
|
|
941
|
+
// Fresh BAS minted seconds ago and still rejected — definitive.
|
|
942
|
+
this.log("bas_unauthorized_after_refresh", { step: "fetch_with_bas", status: 401 });
|
|
943
|
+
await this.clearLocalSession();
|
|
944
|
+
}
|
|
945
|
+
return retried;
|
|
946
|
+
}
|
|
947
|
+
if (outcome === "no_refresh_token" || outcome === "definitive_failure") {
|
|
948
|
+
// 401 with no recovery path (definitive_failure already cleared
|
|
949
|
+
// storage inside the refresh; the no-token path clears here).
|
|
950
|
+
if (outcome === "no_refresh_token") {
|
|
951
|
+
this.log("bas_unauthorized_no_refresh_token", { step: "fetch_with_bas", status: 401 });
|
|
952
|
+
await this.clearLocalSession();
|
|
953
|
+
}
|
|
954
|
+
return res;
|
|
955
|
+
}
|
|
956
|
+
// transient_failure: keep the session; surface the original 401.
|
|
957
|
+
return res;
|
|
958
|
+
}
|
|
959
|
+
/**
|
|
960
|
+
* True when a 401 response should be treated as a signed-out verdict:
|
|
961
|
+
* `fetchWithBas` has already run the refresh-then-retry dance and cleared
|
|
962
|
+
* local storage iff the failure was definitive. If the BAS row is still
|
|
963
|
+
* present, the 401 rode a TRANSIENT refresh failure — the session is kept
|
|
964
|
+
* and callers must degrade gracefully (serve cache) instead of signing out.
|
|
965
|
+
*/
|
|
966
|
+
async sessionWasCleared() {
|
|
967
|
+
return (await this.storage.get(KEY_BAS)) === null;
|
|
621
968
|
}
|
|
622
969
|
async dpopProof(method, url, accessToken) {
|
|
623
970
|
const keypair = await this.getDpopKeypair();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BravelyAccountManager.js","sourceRoot":"","sources":["../src/BravelyAccountManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BravelyAccountManager.js","sourceRoot":"","sources":["../src/BravelyAccountManager.ts"],"names":[],"mappings":"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"}
|