@oxy.so/services 4.0.2 → 4.0.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/lib/commonjs/ui/context/OxyContext.js +52 -20
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/session/tokenLossRecovery.js +122 -0
- package/lib/commonjs/ui/session/tokenLossRecovery.js.map +1 -0
- package/lib/module/ui/context/OxyContext.js +53 -21
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/session/tokenLossRecovery.js +116 -0
- package/lib/module/ui/session/tokenLossRecovery.js.map +1 -0
- package/lib/typescript/commonjs/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/session/tokenLossRecovery.d.ts +37 -0
- package/lib/typescript/commonjs/ui/session/tokenLossRecovery.d.ts.map +1 -0
- package/lib/typescript/module/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/module/ui/session/tokenLossRecovery.d.ts +37 -0
- package/lib/typescript/module/ui/session/tokenLossRecovery.d.ts.map +1 -0
- package/package.json +3 -3
- package/src/ui/context/OxyContext.tsx +53 -23
- package/src/ui/session/__tests__/tokenLossRecovery.test.ts +195 -0
- package/src/ui/session/tokenLossRecovery.ts +146 -0
|
@@ -16,6 +16,7 @@ var _isWebBrowser = require("../utils/isWebBrowser.js");
|
|
|
16
16
|
var _deliveryPlatform = require("../utils/deliveryPlatform.js");
|
|
17
17
|
var _runProviderColdBoot = require("../boot/runProviderColdBoot.js");
|
|
18
18
|
var _deviceCredential = require("../utils/deviceCredential.js");
|
|
19
|
+
var _tokenLossRecovery = require("../session/tokenLossRecovery.js");
|
|
19
20
|
var _authStore = require("../stores/authStore.js");
|
|
20
21
|
var _useLanguageManagement = require("../hooks/useLanguageManagement.js");
|
|
21
22
|
var _useSessionManagement = require("../hooks/useSessionManagement.js");
|
|
@@ -449,14 +450,52 @@ const OxyRuntimeProvider = ({
|
|
|
449
450
|
logger
|
|
450
451
|
});
|
|
451
452
|
|
|
452
|
-
// Token-change side effects
|
|
453
|
-
//
|
|
454
|
-
//
|
|
455
|
-
//
|
|
456
|
-
//
|
|
457
|
-
//
|
|
453
|
+
// Token-change side effects. HttpService clears the bearer and emits `null`
|
|
454
|
+
// when a request draws a 401 its refresh could not answer — which happens on a
|
|
455
|
+
// transient failure (network, a cooling-down or rate-limited mint) as well as
|
|
456
|
+
// on a real revocation. A signed-in user is therefore NOT signed out on the
|
|
457
|
+
// spot: `tokenLossRecovery` keeps the session while the durable device
|
|
458
|
+
// credential survives and re-mints it, the way a relaunch would, and signs out
|
|
459
|
+
// only once the refresh handler has dropped that credential on a definitive
|
|
460
|
+
// server verdict (OxyHQ/Mention#1140). Until a token is back, `tokenReady` is
|
|
461
|
+
// false, so private queries wait instead of 401-ing.
|
|
458
462
|
const clearingInvalidTokenRef = (0, _react.useRef)(false);
|
|
459
463
|
(0, _react.useEffect)(() => {
|
|
464
|
+
const signOutLocally = async () => {
|
|
465
|
+
if (clearingInvalidTokenRef.current) {
|
|
466
|
+
return;
|
|
467
|
+
}
|
|
468
|
+
clearingInvalidTokenRef.current = true;
|
|
469
|
+
try {
|
|
470
|
+
await clearSessionStateRef.current();
|
|
471
|
+
} catch (clearError) {
|
|
472
|
+
logger('Failed to clear invalidated auth session', clearError);
|
|
473
|
+
} finally {
|
|
474
|
+
clearingInvalidTokenRef.current = false;
|
|
475
|
+
if (runtime.getSnapshot().authResolved) {
|
|
476
|
+
runtime.setTokenReady(true);
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
};
|
|
480
|
+
const recovery = (0, _tokenLossRecovery.createTokenLossRecovery)({
|
|
481
|
+
remint: () => oxyServices.httpService.refreshAccessToken('preflight'),
|
|
482
|
+
hasDeviceCredential: () => (0, _deviceCredential.hasPersistedDeviceCredential)(authStore),
|
|
483
|
+
hasKeyedRecovery: async () => {
|
|
484
|
+
if (_reactNative.Platform.OS === 'web') {
|
|
485
|
+
return false;
|
|
486
|
+
}
|
|
487
|
+
try {
|
|
488
|
+
// The same keys the refresh handler's second arm signs with: the
|
|
489
|
+
// identity-bound client's own key, or the cross-app shared identity.
|
|
490
|
+
return identity ? await _core.KeyManager.hasIdentity() : await _core.KeyManager.hasSharedIdentity();
|
|
491
|
+
} catch {
|
|
492
|
+
return false;
|
|
493
|
+
}
|
|
494
|
+
},
|
|
495
|
+
isSignedIn: () => runtime.getSnapshot().account !== null,
|
|
496
|
+
hasToken: () => Boolean(oxyServices.getAccessToken()),
|
|
497
|
+
signOutLocally
|
|
498
|
+
});
|
|
460
499
|
const handleTokenChange = accessToken => {
|
|
461
500
|
runtime.setHasAccessToken(Boolean(accessToken));
|
|
462
501
|
if (accessToken) {
|
|
@@ -468,18 +507,7 @@ const OxyRuntimeProvider = ({
|
|
|
468
507
|
}
|
|
469
508
|
if (runtime.getSnapshot().account !== null) {
|
|
470
509
|
runtime.setTokenReady(false);
|
|
471
|
-
|
|
472
|
-
return;
|
|
473
|
-
}
|
|
474
|
-
clearingInvalidTokenRef.current = true;
|
|
475
|
-
clearSessionStateRef.current().catch(clearError => {
|
|
476
|
-
logger('Failed to clear invalidated auth session', clearError);
|
|
477
|
-
}).finally(() => {
|
|
478
|
-
clearingInvalidTokenRef.current = false;
|
|
479
|
-
if (runtime.getSnapshot().authResolved) {
|
|
480
|
-
runtime.setTokenReady(true);
|
|
481
|
-
}
|
|
482
|
-
});
|
|
510
|
+
recovery.start();
|
|
483
511
|
return;
|
|
484
512
|
}
|
|
485
513
|
if (runtime.getSnapshot().authResolved) {
|
|
@@ -487,8 +515,12 @@ const OxyRuntimeProvider = ({
|
|
|
487
515
|
}
|
|
488
516
|
};
|
|
489
517
|
handleTokenChange(oxyServices.getAccessToken());
|
|
490
|
-
|
|
491
|
-
|
|
518
|
+
const unsubscribe = oxyServices.onTokensChanged(handleTokenChange);
|
|
519
|
+
return () => {
|
|
520
|
+
unsubscribe();
|
|
521
|
+
recovery.dispose();
|
|
522
|
+
};
|
|
523
|
+
}, [logger, oxyServices, runtime, sessionClient, authStore, identity]);
|
|
492
524
|
|
|
493
525
|
// Unified in-session refresh (SDK-owned; every RP inherits it). Installs the
|
|
494
526
|
// ONE core refresh handler (re-mint from the persisted zero-cookie device
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_core","_accountDialogManager","_oauthNavigation","_passkeyHubPopup","_browserAuthTransport","_explicitOAuthConsent","_isWebBrowser","_deliveryPlatform","_runProviderColdBoot","_deviceCredential","_authStore","_useLanguageManagement","_useSessionManagement","_useAuthOperations","_useDeviceManagement","_storageHelpers","_bottomSheetManager","_surfaces","_reactQuery","_queryClient","_useAvatarPicker","_resetSessionScopedStores","_useResolvedFileUrls","_index","_index2","_oxyContextHelpers","_useFollow","_commitSessionFlow","_passkeyFlow","_passkeyClient","_queryKeys","_useOxyAccountGraph","_jsxRuntime","OxyRuntimeContext","createContext","OxyAuthActionsContext","OxyRuntimeProvider","children","oxyServices","providedOxyServices","baseURL","authWebUrl","authRedirectUri","authorizeBaseUrl","storageKeyPrefix","clientId","clientIdProp","sessionMode","webAuthMode","backgroundSession","deviceCredentialStorage","platformStorage","onAuthStateChange","onError","oxyServicesRef","useRef","current","OxyServices","Error","authStoreRef","createPlatformAuthStateStore","storage","authStore","identityRef","createIdentitySessionBinding","identity","isIdentityBound","logger","useCallback","message","err","__DEV__","loggerUtil","warn","component","sessionClientPairRef","createSessionClient","origin","clearPersistedAuthSafe","clearSessionStateRef","catch","clearError","getPinnedAccountId","client","sessionClient","host","sessionClientHost","Promise","resolve","saveSessionIdsRef","undefined","subjectChangeRef","reestablishRef","runtimeRef","createOxyRuntime","onSubjectChange","transition","onDeviceEmpty","onSessionsProjected","sessionIds","onIdentityUnbound","binding","revision","runtime","snapshot","useRuntimeSnapshot","account","user","sessions","activeSessionId","isLoading","tokenReady","hasAccessToken","authResolved","isAuthenticated","error","initialized","setInitialized","useState","accountDialogOpen","setAccountDialogOpen","useEffect","bindAuthStoreToRuntime","start","oxyClient","applyToSingleton","accessToken","setTokens","clearTokens","getAccessToken","onTokensChanged","storageKeys","useMemo","getStorageKeys","trimmed","trim","storageRef","setStorage","buildStorageDeferred","promise","res","storageReadyRef","storageReady","mounted","storagePromise","createPlatformStorage","then","storageInstance","setStorageReady","code","status","currentLanguage","languages","currentLanguages","metadata","currentLanguageMetadata","languageName","currentLanguageName","nativeLanguageName","currentNativeLanguageName","setLanguage","useLanguageManagement","languageKey","language","queryClient","useQueryClient","saveSessionIds","switchSession","clearSessionState","saveActiveSessionId","useSessionManagement","setAuthError","setError","onAuthStateChangeRef","markAuthResolved","markAuthResolvedRef","setTokenReady","ready","identityEstablishRef","inFlight","reestablishIdentitySession","tracker","established","establishIdentitySession","oxy","store","refreshPinnedAccountId","bootstrap","establishError","finally","syncFromClient","reconcileFromClient","syncFromClientRef","syncDeviceCredentialToHost","cred","loadPersistedDeviceCredential","setDeviceCredential","signIn","logout","logoutAll","useAuthOperations","identityBinding","revokeSuspiciousSignIn","clearAllAccountData","clear","clearQueryCache","clearCache","getDeviceSessions","logoutAllDeviceSessions","updateDeviceName","useDeviceManagement","clearingInvalidTokenRef","handleTokenChange","setHasAccessToken","Boolean","getState","accounts","length","getSnapshot","dispose","installAuthRefreshHandler","scheduler","startTokenRefreshScheduler","commitSession","input","options","deviceState","adoptState","deviceId","deviceSecret","prior","load","next","sessionId","userId","expiresAt","save","persistError","now","Date","batch","mergeSessions","getTime","DEFAULT_SESSION_VALIDITY_MS","toISOString","lastActive","isCurrent","merge","setActiveSessionId","commitDeviceSetAndResolve","activate","hasDeviceState","fallbackUser","registerAndActivate","addCurrentAccount","startSocket","getCurrentUser","loginSuccess","fullUser","setAccount","commitSessionRef","handleWebSession","session","id","startWebOAuthSignInForContext","startWebOAuthSignIn","mode","identityBound","requestOAuthConsentForContext","requestOAuthConsent","platform","Platform","OS","expectedUserId","handleWebSessionRef","accountDialogSurfaceRef","accountDialogHostRef","dismissAccountDialogSurface","goBack","dismiss","accountDialogControllerRef","createAccountDialogController","onSignedIn","openUrl","url","isWebBrowser","redirectToAuthorize","Linking","openURL","canOpenApp","canOpenURL","openPopup","openPasskeyHubPopup","resolveDeliveryPlatform","accountDialogController","openAccountDialog","view","method","nextView","setView","topRouteSurface","navigate","initialView","instance","presentDetached","placement","base","md","dismissOnBackdrop","maxWidth","result","closeAccountDialog","cancelSignIn","controller","destroy","registerAccountDialogControls","open","close","notifyAccountDialogVisibility","signInWithPasskey","opts","persisted","runPasskeyLogin","isSupported","isPasskeySupported","getLoginOptions","username","webauthnLoginOptions","runCeremony","runAuthenticationCeremony","loginVerify","response","envelope","webauthnLoginVerify","commit","deviceName","deviceFingerprint","addPasskey","params","runPasskeyAdd","getRegisterOptions","webauthnRegisterOptions","runRegistrationCeremony","registerVerify","webauthnRegisterVerify","onLinked","invalidateQueries","queryKey","queryKeys","authMethods","all","removePasskey","credentialId","runColdBoot","ensurePinnedAccountId","runProviderColdBoot","onVisibility","document","visibilityState","reconcile","getDeviceCredential","httpService","refreshAccessToken","addEventListener","removeEventListener","previousOnline","onlineManager","isOnline","subscribe","online","wasOffline","refreshSessionsForContext","switchSessionForContext","IdentityBoundSessionError","targetAccountId","find","accountId","switchAccount","activeUser","hasIdentity","KeyManager","getPublicKey","showBottomSheetForContext","screenOrConfig","globalShowBottomSheet","openAvatarPicker","useAvatarPicker","refreshAccounts","switchToAccount","createAccount","createAccountFn","useOxyAccountGraph","handleSubjectChange","previous","resetSessionScopedStores","removeQueries","ASSET_DOWNLOAD_URLS_QUERY_KEY","canUsePrivateApi","isPrivateApiPending","useBackgroundSessionSync","enabled","contextValue","isTokenReady","isAuthResolved","isStorageReady","removeSession","refreshSessions","useFollow","showBottomSheet","isAccountDialogOpen","authActionsValue","jsx","OxyRuntimeHandleProvider","value","Provider","exports","PROVIDER_MISSING_ERROR_MESSAGE","OxyProviderMissingError","constructor","name","useOxy","context","useContext","useOptionalOxy","useOxyAuthActions","actions"],"sourceRoot":"../../../../src","sources":["ui/context/OxyContext.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_core","_accountDialogManager","_oauthNavigation","_passkeyHubPopup","_browserAuthTransport","_explicitOAuthConsent","_isWebBrowser","_deliveryPlatform","_runProviderColdBoot","_deviceCredential","_tokenLossRecovery","_authStore","_useLanguageManagement","_useSessionManagement","_useAuthOperations","_useDeviceManagement","_storageHelpers","_bottomSheetManager","_surfaces","_reactQuery","_queryClient","_useAvatarPicker","_resetSessionScopedStores","_useResolvedFileUrls","_index","_index2","_oxyContextHelpers","_useFollow","_commitSessionFlow","_passkeyFlow","_passkeyClient","_queryKeys","_useOxyAccountGraph","_jsxRuntime","OxyRuntimeContext","createContext","OxyAuthActionsContext","OxyRuntimeProvider","children","oxyServices","providedOxyServices","baseURL","authWebUrl","authRedirectUri","authorizeBaseUrl","storageKeyPrefix","clientId","clientIdProp","sessionMode","webAuthMode","backgroundSession","deviceCredentialStorage","platformStorage","onAuthStateChange","onError","oxyServicesRef","useRef","current","OxyServices","Error","authStoreRef","createPlatformAuthStateStore","storage","authStore","identityRef","createIdentitySessionBinding","identity","isIdentityBound","logger","useCallback","message","err","__DEV__","loggerUtil","warn","component","sessionClientPairRef","createSessionClient","origin","clearPersistedAuthSafe","clearSessionStateRef","catch","clearError","getPinnedAccountId","client","sessionClient","host","sessionClientHost","Promise","resolve","saveSessionIdsRef","undefined","subjectChangeRef","reestablishRef","runtimeRef","createOxyRuntime","onSubjectChange","transition","onDeviceEmpty","onSessionsProjected","sessionIds","onIdentityUnbound","binding","revision","runtime","snapshot","useRuntimeSnapshot","account","user","sessions","activeSessionId","isLoading","tokenReady","hasAccessToken","authResolved","isAuthenticated","error","initialized","setInitialized","useState","accountDialogOpen","setAccountDialogOpen","useEffect","bindAuthStoreToRuntime","start","oxyClient","applyToSingleton","accessToken","setTokens","clearTokens","getAccessToken","onTokensChanged","storageKeys","useMemo","getStorageKeys","trimmed","trim","storageRef","setStorage","buildStorageDeferred","promise","res","storageReadyRef","storageReady","mounted","storagePromise","createPlatformStorage","then","storageInstance","setStorageReady","code","status","currentLanguage","languages","currentLanguages","metadata","currentLanguageMetadata","languageName","currentLanguageName","nativeLanguageName","currentNativeLanguageName","setLanguage","useLanguageManagement","languageKey","language","queryClient","useQueryClient","saveSessionIds","switchSession","clearSessionState","saveActiveSessionId","useSessionManagement","setAuthError","setError","onAuthStateChangeRef","markAuthResolved","markAuthResolvedRef","setTokenReady","ready","identityEstablishRef","inFlight","reestablishIdentitySession","tracker","established","establishIdentitySession","oxy","store","refreshPinnedAccountId","bootstrap","establishError","finally","syncFromClient","reconcileFromClient","syncFromClientRef","syncDeviceCredentialToHost","cred","loadPersistedDeviceCredential","setDeviceCredential","signIn","logout","logoutAll","useAuthOperations","identityBinding","revokeSuspiciousSignIn","clearAllAccountData","clear","clearQueryCache","clearCache","getDeviceSessions","logoutAllDeviceSessions","updateDeviceName","useDeviceManagement","clearingInvalidTokenRef","signOutLocally","getSnapshot","recovery","createTokenLossRecovery","remint","httpService","refreshAccessToken","hasDeviceCredential","hasPersistedDeviceCredential","hasKeyedRecovery","Platform","OS","KeyManager","hasIdentity","hasSharedIdentity","isSignedIn","hasToken","Boolean","handleTokenChange","setHasAccessToken","getState","accounts","length","unsubscribe","dispose","installAuthRefreshHandler","scheduler","startTokenRefreshScheduler","commitSession","input","options","deviceState","adoptState","deviceId","deviceSecret","prior","load","next","sessionId","userId","expiresAt","save","persistError","now","Date","batch","mergeSessions","getTime","DEFAULT_SESSION_VALIDITY_MS","toISOString","lastActive","isCurrent","merge","setActiveSessionId","commitDeviceSetAndResolve","activate","hasDeviceState","fallbackUser","registerAndActivate","addCurrentAccount","startSocket","getCurrentUser","loginSuccess","fullUser","setAccount","commitSessionRef","handleWebSession","session","id","startWebOAuthSignInForContext","startWebOAuthSignIn","mode","identityBound","requestOAuthConsentForContext","requestOAuthConsent","platform","expectedUserId","handleWebSessionRef","accountDialogSurfaceRef","accountDialogHostRef","dismissAccountDialogSurface","goBack","dismiss","accountDialogControllerRef","createAccountDialogController","onSignedIn","openUrl","url","isWebBrowser","redirectToAuthorize","Linking","openURL","canOpenApp","canOpenURL","openPopup","openPasskeyHubPopup","resolveDeliveryPlatform","accountDialogController","openAccountDialog","view","method","nextView","setView","topRouteSurface","navigate","initialView","instance","presentDetached","placement","base","md","dismissOnBackdrop","maxWidth","result","closeAccountDialog","cancelSignIn","controller","destroy","registerAccountDialogControls","open","close","notifyAccountDialogVisibility","signInWithPasskey","opts","persisted","runPasskeyLogin","isSupported","isPasskeySupported","getLoginOptions","username","webauthnLoginOptions","runCeremony","runAuthenticationCeremony","loginVerify","response","envelope","webauthnLoginVerify","commit","deviceName","deviceFingerprint","addPasskey","params","runPasskeyAdd","getRegisterOptions","webauthnRegisterOptions","runRegistrationCeremony","registerVerify","webauthnRegisterVerify","onLinked","invalidateQueries","queryKey","queryKeys","authMethods","all","removePasskey","credentialId","runColdBoot","ensurePinnedAccountId","runProviderColdBoot","onVisibility","document","visibilityState","reconcile","getDeviceCredential","addEventListener","removeEventListener","previousOnline","onlineManager","isOnline","subscribe","online","wasOffline","refreshSessionsForContext","switchSessionForContext","IdentityBoundSessionError","targetAccountId","find","accountId","switchAccount","activeUser","getPublicKey","showBottomSheetForContext","screenOrConfig","globalShowBottomSheet","openAvatarPicker","useAvatarPicker","refreshAccounts","switchToAccount","createAccount","createAccountFn","useOxyAccountGraph","handleSubjectChange","previous","resetSessionScopedStores","removeQueries","ASSET_DOWNLOAD_URLS_QUERY_KEY","canUsePrivateApi","isPrivateApiPending","useBackgroundSessionSync","enabled","contextValue","isTokenReady","isAuthResolved","isStorageReady","removeSession","refreshSessions","useFollow","showBottomSheet","isAccountDialogOpen","authActionsValue","jsx","OxyRuntimeHandleProvider","value","Provider","exports","PROVIDER_MISSING_ERROR_MESSAGE","OxyProviderMissingError","constructor","name","useOxy","context","useContext","useOptionalOxy","useOxyAuthActions","actions"],"sourceRoot":"../../../../src","sources":["ui/context/OxyContext.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TOKEN_RECOVERY_BACKOFF_MS = exports.MAX_KEYED_RECOVERY_ATTEMPTS = void 0;
|
|
7
|
+
exports.createTokenLossRecovery = createTokenLossRecovery;
|
|
8
|
+
var _core = require("@oxy.so/core");
|
|
9
|
+
/**
|
|
10
|
+
* What a signed-in app does when its access token disappears at runtime.
|
|
11
|
+
*
|
|
12
|
+
* `HttpService` clears the bearer when a request draws a 401 and the refresh it
|
|
13
|
+
* then tries returns nothing. That refresh can return nothing for reasons that
|
|
14
|
+
* say NOTHING about the session: the mint is cooling down after a failure or a
|
|
15
|
+
* 429, the network dropped, the server was restarting. The provider used to read
|
|
16
|
+
* every such clear as a sign-out and tore the session down on the spot — and
|
|
17
|
+
* because the proactive refresh scheduler only runs while a token exists, nothing
|
|
18
|
+
* was left to bring the session back. Only a relaunch did, because the cold boot
|
|
19
|
+
* mints from the durable device credential that had been there all along
|
|
20
|
+
* (OxyHQ/Mention#1140).
|
|
21
|
+
*
|
|
22
|
+
* So a lost token is a question, and this answers it the way a relaunch would:
|
|
23
|
+
*
|
|
24
|
+
* - The durable store still holds the device credential → the session is NOT
|
|
25
|
+
* known to be over. Keep the user signed in (private queries pause, because
|
|
26
|
+
* there is no bearer) and re-mint with backoff until one succeeds. A
|
|
27
|
+
* definitive server verdict (`invalid_device_secret`, `no_active_session`)
|
|
28
|
+
* makes the refresh handler drop or clear that credential, which is what ends
|
|
29
|
+
* this loop in a sign-out — so a real revocation still signs out.
|
|
30
|
+
* - No credential, but a key-based lane can still re-establish (the native
|
|
31
|
+
* shared identity, or an identity-bound client's own key) → try that a few
|
|
32
|
+
* times, as the cold boot's shared-key step would, then sign out.
|
|
33
|
+
* - Neither → the session is over. Sign out now, as before.
|
|
34
|
+
*
|
|
35
|
+
* Framework-free and clock-injectable so the policy is unit tested without a
|
|
36
|
+
* provider.
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Delays between re-mint attempts while the device credential is intact. Starts
|
|
41
|
+
* near the post-failure refresh cooldowns and settles at one attempt a minute,
|
|
42
|
+
* which also respects the mint's own 60s rate-limit cooldown.
|
|
43
|
+
*/
|
|
44
|
+
const TOKEN_RECOVERY_BACKOFF_MS = exports.TOKEN_RECOVERY_BACKOFF_MS = [2_000, 5_000, 10_000, 20_000, 30_000, 60_000];
|
|
45
|
+
|
|
46
|
+
/** Attempts through a key-based lane once the device credential is gone. */
|
|
47
|
+
const MAX_KEYED_RECOVERY_ATTEMPTS = exports.MAX_KEYED_RECOVERY_ATTEMPTS = 3;
|
|
48
|
+
const defaultSleep = ms => new Promise(resolve => {
|
|
49
|
+
setTimeout(resolve, ms);
|
|
50
|
+
});
|
|
51
|
+
const LOG_CONTEXT = {
|
|
52
|
+
component: 'OxyContext',
|
|
53
|
+
method: 'tokenLossRecovery'
|
|
54
|
+
};
|
|
55
|
+
function createTokenLossRecovery(deps) {
|
|
56
|
+
const sleep = deps.sleep ?? defaultSleep;
|
|
57
|
+
let running = false;
|
|
58
|
+
let disposed = false;
|
|
59
|
+
const settled = () => disposed || deps.hasToken() || !deps.isSignedIn();
|
|
60
|
+
const run = async () => {
|
|
61
|
+
let attempt = 0;
|
|
62
|
+
let keyedAttempts = 0;
|
|
63
|
+
_core.logger.warn('Access token lost while signed in — recovering the session instead of signing out', LOG_CONTEXT);
|
|
64
|
+
while (!settled()) {
|
|
65
|
+
if (!(await deps.hasDeviceCredential())) {
|
|
66
|
+
const keyed = keyedAttempts < MAX_KEYED_RECOVERY_ATTEMPTS && (await deps.hasKeyedRecovery());
|
|
67
|
+
if (!keyed) {
|
|
68
|
+
if (settled()) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
_core.logger.warn('Session recovery ended: no device credential and no key-based lane left — signing out', {
|
|
72
|
+
...LOG_CONTEXT,
|
|
73
|
+
attempts: attempt,
|
|
74
|
+
keyedAttempts
|
|
75
|
+
});
|
|
76
|
+
await deps.signOutLocally();
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
keyedAttempts += 1;
|
|
80
|
+
}
|
|
81
|
+
if (settled()) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const token = await deps.remint().catch(() => null);
|
|
85
|
+
attempt += 1;
|
|
86
|
+
if (token || settled()) {
|
|
87
|
+
if (token) {
|
|
88
|
+
_core.logger.warn('Session recovered after a lost access token', {
|
|
89
|
+
...LOG_CONTEXT,
|
|
90
|
+
attempts: attempt
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
await sleep(TOKEN_RECOVERY_BACKOFF_MS[Math.min(attempt - 1, TOKEN_RECOVERY_BACKOFF_MS.length - 1)]);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
return {
|
|
99
|
+
start() {
|
|
100
|
+
if (running || disposed) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
running = true;
|
|
104
|
+
void run().catch(async error => {
|
|
105
|
+
// Never leave a signed-in UI with no bearer and nothing recovering it.
|
|
106
|
+
_core.logger.warn('Session recovery failed unexpectedly — signing out', LOG_CONTEXT, error);
|
|
107
|
+
if (!settled()) {
|
|
108
|
+
await deps.signOutLocally().catch(() => undefined);
|
|
109
|
+
}
|
|
110
|
+
}).finally(() => {
|
|
111
|
+
running = false;
|
|
112
|
+
});
|
|
113
|
+
},
|
|
114
|
+
dispose() {
|
|
115
|
+
disposed = true;
|
|
116
|
+
},
|
|
117
|
+
isRecovering() {
|
|
118
|
+
return running;
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=tokenLossRecovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_core","require","TOKEN_RECOVERY_BACKOFF_MS","exports","MAX_KEYED_RECOVERY_ATTEMPTS","defaultSleep","ms","Promise","resolve","setTimeout","LOG_CONTEXT","component","method","createTokenLossRecovery","deps","sleep","running","disposed","settled","hasToken","isSignedIn","run","attempt","keyedAttempts","logger","warn","hasDeviceCredential","keyed","hasKeyedRecovery","attempts","signOutLocally","token","remint","catch","Math","min","length","start","error","undefined","finally","dispose","isRecovering"],"sourceRoot":"../../../../src","sources":["ui/session/tokenLossRecovery.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,7 +12,8 @@ import { requestOAuthConsent } from "../oauth/explicitOAuthConsent.js";
|
|
|
12
12
|
import { isWebBrowser } from "../utils/isWebBrowser.js";
|
|
13
13
|
import { resolveDeliveryPlatform } from "../utils/deliveryPlatform.js";
|
|
14
14
|
import { runProviderColdBoot } from "../boot/runProviderColdBoot.js";
|
|
15
|
-
import { loadPersistedDeviceCredential } from "../utils/deviceCredential.js";
|
|
15
|
+
import { hasPersistedDeviceCredential, loadPersistedDeviceCredential } from "../utils/deviceCredential.js";
|
|
16
|
+
import { createTokenLossRecovery } from "../session/tokenLossRecovery.js";
|
|
16
17
|
import { bindAuthStoreToRuntime } from "../stores/authStore.js";
|
|
17
18
|
import { useLanguageManagement } from "../hooks/useLanguageManagement.js";
|
|
18
19
|
import { useSessionManagement } from "../hooks/useSessionManagement.js";
|
|
@@ -445,14 +446,52 @@ export const OxyRuntimeProvider = ({
|
|
|
445
446
|
logger
|
|
446
447
|
});
|
|
447
448
|
|
|
448
|
-
// Token-change side effects
|
|
449
|
-
//
|
|
450
|
-
//
|
|
451
|
-
//
|
|
452
|
-
//
|
|
453
|
-
//
|
|
449
|
+
// Token-change side effects. HttpService clears the bearer and emits `null`
|
|
450
|
+
// when a request draws a 401 its refresh could not answer — which happens on a
|
|
451
|
+
// transient failure (network, a cooling-down or rate-limited mint) as well as
|
|
452
|
+
// on a real revocation. A signed-in user is therefore NOT signed out on the
|
|
453
|
+
// spot: `tokenLossRecovery` keeps the session while the durable device
|
|
454
|
+
// credential survives and re-mints it, the way a relaunch would, and signs out
|
|
455
|
+
// only once the refresh handler has dropped that credential on a definitive
|
|
456
|
+
// server verdict (OxyHQ/Mention#1140). Until a token is back, `tokenReady` is
|
|
457
|
+
// false, so private queries wait instead of 401-ing.
|
|
454
458
|
const clearingInvalidTokenRef = useRef(false);
|
|
455
459
|
useEffect(() => {
|
|
460
|
+
const signOutLocally = async () => {
|
|
461
|
+
if (clearingInvalidTokenRef.current) {
|
|
462
|
+
return;
|
|
463
|
+
}
|
|
464
|
+
clearingInvalidTokenRef.current = true;
|
|
465
|
+
try {
|
|
466
|
+
await clearSessionStateRef.current();
|
|
467
|
+
} catch (clearError) {
|
|
468
|
+
logger('Failed to clear invalidated auth session', clearError);
|
|
469
|
+
} finally {
|
|
470
|
+
clearingInvalidTokenRef.current = false;
|
|
471
|
+
if (runtime.getSnapshot().authResolved) {
|
|
472
|
+
runtime.setTokenReady(true);
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
};
|
|
476
|
+
const recovery = createTokenLossRecovery({
|
|
477
|
+
remint: () => oxyServices.httpService.refreshAccessToken('preflight'),
|
|
478
|
+
hasDeviceCredential: () => hasPersistedDeviceCredential(authStore),
|
|
479
|
+
hasKeyedRecovery: async () => {
|
|
480
|
+
if (Platform.OS === 'web') {
|
|
481
|
+
return false;
|
|
482
|
+
}
|
|
483
|
+
try {
|
|
484
|
+
// The same keys the refresh handler's second arm signs with: the
|
|
485
|
+
// identity-bound client's own key, or the cross-app shared identity.
|
|
486
|
+
return identity ? await KeyManager.hasIdentity() : await KeyManager.hasSharedIdentity();
|
|
487
|
+
} catch {
|
|
488
|
+
return false;
|
|
489
|
+
}
|
|
490
|
+
},
|
|
491
|
+
isSignedIn: () => runtime.getSnapshot().account !== null,
|
|
492
|
+
hasToken: () => Boolean(oxyServices.getAccessToken()),
|
|
493
|
+
signOutLocally
|
|
494
|
+
});
|
|
456
495
|
const handleTokenChange = accessToken => {
|
|
457
496
|
runtime.setHasAccessToken(Boolean(accessToken));
|
|
458
497
|
if (accessToken) {
|
|
@@ -464,18 +503,7 @@ export const OxyRuntimeProvider = ({
|
|
|
464
503
|
}
|
|
465
504
|
if (runtime.getSnapshot().account !== null) {
|
|
466
505
|
runtime.setTokenReady(false);
|
|
467
|
-
|
|
468
|
-
return;
|
|
469
|
-
}
|
|
470
|
-
clearingInvalidTokenRef.current = true;
|
|
471
|
-
clearSessionStateRef.current().catch(clearError => {
|
|
472
|
-
logger('Failed to clear invalidated auth session', clearError);
|
|
473
|
-
}).finally(() => {
|
|
474
|
-
clearingInvalidTokenRef.current = false;
|
|
475
|
-
if (runtime.getSnapshot().authResolved) {
|
|
476
|
-
runtime.setTokenReady(true);
|
|
477
|
-
}
|
|
478
|
-
});
|
|
506
|
+
recovery.start();
|
|
479
507
|
return;
|
|
480
508
|
}
|
|
481
509
|
if (runtime.getSnapshot().authResolved) {
|
|
@@ -483,8 +511,12 @@ export const OxyRuntimeProvider = ({
|
|
|
483
511
|
}
|
|
484
512
|
};
|
|
485
513
|
handleTokenChange(oxyServices.getAccessToken());
|
|
486
|
-
|
|
487
|
-
|
|
514
|
+
const unsubscribe = oxyServices.onTokensChanged(handleTokenChange);
|
|
515
|
+
return () => {
|
|
516
|
+
unsubscribe();
|
|
517
|
+
recovery.dispose();
|
|
518
|
+
};
|
|
519
|
+
}, [logger, oxyServices, runtime, sessionClient, authStore, identity]);
|
|
488
520
|
|
|
489
521
|
// Unified in-session refresh (SDK-owned; every RP inherits it). Installs the
|
|
490
522
|
// ONE core refresh handler (re-mint from the persisted zero-cookie device
|