@oxyhq/services 5.16.37 → 5.16.39
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/core/mixins/OxyServices.auth.js +10 -3
- package/lib/commonjs/core/mixins/OxyServices.auth.js.map +1 -1
- package/lib/commonjs/index.js +0 -7
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +84 -14
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +93 -37
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/stores/transferStore.js +4 -0
- package/lib/commonjs/ui/stores/transferStore.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.auth.js +10 -3
- package/lib/module/core/mixins/OxyServices.auth.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +85 -15
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +93 -37
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/stores/transferStore.js +4 -0
- package/lib/module/ui/stores/transferStore.js.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.auth.d.ts +2 -1
- package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
- package/lib/typescript/core/mixins/index.d.ts +1 -1
- package/lib/typescript/index.d.ts +2 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/ui/context/OxyContext.d.ts +3 -3
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +2 -2
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/ui/stores/transferStore.d.ts +1 -0
- package/lib/typescript/ui/stores/transferStore.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/mixins/OxyServices.auth.ts +12 -3
- package/src/index.ts +1 -1
- package/src/ui/context/OxyContext.tsx +84 -17
- package/src/ui/context/hooks/useAuthOperations.ts +89 -38
- package/src/ui/stores/transferStore.ts +6 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
|
|
3
|
+
import { createContext, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
4
4
|
import { Platform } from 'react-native';
|
|
5
5
|
import { OxyServices } from '../../core';
|
|
6
6
|
import { toast } from '../../lib/sonner';
|
|
@@ -121,6 +121,15 @@ export const OxyProvider = ({
|
|
|
121
121
|
logger
|
|
122
122
|
});
|
|
123
123
|
|
|
124
|
+
// Invalidate KeyManager cache on mount to prevent stale cache issues
|
|
125
|
+
// useLayoutEffect runs synchronously after render but before paint, ensuring cache
|
|
126
|
+
// invalidation happens before any async operations start
|
|
127
|
+
useLayoutEffect(() => {
|
|
128
|
+
if (Platform.OS !== 'web') {
|
|
129
|
+
KeyManager.invalidateCache();
|
|
130
|
+
}
|
|
131
|
+
}, []);
|
|
132
|
+
|
|
124
133
|
// Identity integrity check and auto-restore on startup
|
|
125
134
|
// Skip on web platform - identity storage is only available on native platforms
|
|
126
135
|
useEffect(() => {
|
|
@@ -129,9 +138,7 @@ export const OxyProvider = ({
|
|
|
129
138
|
|
|
130
139
|
const checkAndRestoreIdentity = async () => {
|
|
131
140
|
try {
|
|
132
|
-
//
|
|
133
|
-
// This prevents stale cache from previous session from showing incorrect state
|
|
134
|
-
KeyManager.invalidateCache();
|
|
141
|
+
// Cache was already invalidated synchronously above
|
|
135
142
|
|
|
136
143
|
// Check if identity exists and verify integrity
|
|
137
144
|
const hasIdentity = await KeyManager.hasIdentity();
|
|
@@ -252,9 +259,17 @@ export const OxyProvider = ({
|
|
|
252
259
|
return importIdentityBase(backupData, password);
|
|
253
260
|
}, [importIdentityBase]);
|
|
254
261
|
|
|
262
|
+
// Storage keys for transfer codes
|
|
263
|
+
const TRANSFER_CODES_STORAGE_KEY = `${storageKeyPrefix}_transfer_codes`;
|
|
264
|
+
const ACTIVE_TRANSFER_STORAGE_KEY = `${storageKeyPrefix}_active_transfer_id`;
|
|
265
|
+
|
|
255
266
|
// Clear all account data when identity is lost (for accounts app)
|
|
256
267
|
// In accounts app, identity = account, so losing identity means losing everything
|
|
257
268
|
const clearAllAccountData = useCallback(async () => {
|
|
269
|
+
if (__DEV__) {
|
|
270
|
+
logger('Clearing all account data - identity changed or lost');
|
|
271
|
+
}
|
|
272
|
+
|
|
258
273
|
// Clear TanStack Query cache (in-memory)
|
|
259
274
|
queryClient.clear();
|
|
260
275
|
|
|
@@ -286,9 +301,29 @@ export const OxyProvider = ({
|
|
|
286
301
|
// Reset account store
|
|
287
302
|
useAccountStore.getState().reset();
|
|
288
303
|
|
|
304
|
+
// CRITICAL: Clear ALL transfer codes and active transfer state
|
|
305
|
+
// This prevents transfer state from previous identity from lingering
|
|
306
|
+
if (storage) {
|
|
307
|
+
try {
|
|
308
|
+
await storage.removeItem(TRANSFER_CODES_STORAGE_KEY);
|
|
309
|
+
await storage.removeItem(ACTIVE_TRANSFER_STORAGE_KEY);
|
|
310
|
+
|
|
311
|
+
// Also clear Zustand transfer store
|
|
312
|
+
useTransferStore.getState().clearAll();
|
|
313
|
+
if (__DEV__) {
|
|
314
|
+
logger('Cleared all transfer state');
|
|
315
|
+
}
|
|
316
|
+
} catch (error) {
|
|
317
|
+
logger('Failed to clear transfer state', error);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
|
|
289
321
|
// Clear HTTP service cache
|
|
290
322
|
oxyServices.clearCache();
|
|
291
|
-
|
|
323
|
+
|
|
324
|
+
// Force KeyManager cache invalidation
|
|
325
|
+
KeyManager.invalidateCache();
|
|
326
|
+
}, [queryClient, storage, clearSessionState, logger, oxyServices, TRANSFER_CODES_STORAGE_KEY, ACTIVE_TRANSFER_STORAGE_KEY]);
|
|
292
327
|
|
|
293
328
|
// Extract Zustand store functions early (before they're used in callbacks)
|
|
294
329
|
const getAllPendingTransfersStore = useTransferStore(state => state.getAllPendingTransfers);
|
|
@@ -469,6 +504,8 @@ export const OxyProvider = ({
|
|
|
469
504
|
try {
|
|
470
505
|
// CRITICAL: Get current identity's public key first
|
|
471
506
|
// Only restore sessions that belong to this identity
|
|
507
|
+
// Force cache invalidation to ensure we get the actual current identity
|
|
508
|
+
KeyManager.invalidateCache();
|
|
472
509
|
const currentPublicKey = await KeyManager.getPublicKey().catch(() => null);
|
|
473
510
|
const storedSessionIdsJson = await storage.getItem(storageKeys.sessionIds);
|
|
474
511
|
const storedSessionIds = storedSessionIdsJson ? JSON.parse(storedSessionIdsJson) : [];
|
|
@@ -477,12 +514,23 @@ export const OxyProvider = ({
|
|
|
477
514
|
// If no identity exists, clear all sessions and return
|
|
478
515
|
if (!currentPublicKey) {
|
|
479
516
|
if (storedSessionIds.length > 0 || storedActiveSessionId) {
|
|
517
|
+
if (__DEV__) {
|
|
518
|
+
logger('No identity found - clearing all stored sessions to prevent cross-identity data leak');
|
|
519
|
+
}
|
|
480
520
|
await clearSessionState();
|
|
481
521
|
}
|
|
482
522
|
setTokenReady(true);
|
|
483
523
|
return;
|
|
484
524
|
}
|
|
525
|
+
if (__DEV__) {
|
|
526
|
+
logger('Restoring sessions for identity', {
|
|
527
|
+
publicKey: currentPublicKey.substring(0, 16) + '...',
|
|
528
|
+
sessionCount: storedSessionIds.length
|
|
529
|
+
});
|
|
530
|
+
}
|
|
485
531
|
const validSessions = [];
|
|
532
|
+
const invalidSessionIds = []; // Track invalid sessions for batch removal
|
|
533
|
+
|
|
486
534
|
if (storedSessionIds.length > 0) {
|
|
487
535
|
for (const sessionId of storedSessionIds) {
|
|
488
536
|
try {
|
|
@@ -491,14 +539,18 @@ export const OxyProvider = ({
|
|
|
491
539
|
});
|
|
492
540
|
if (validation?.valid && validation.user) {
|
|
493
541
|
// CRITICAL: Verify session belongs to current identity
|
|
494
|
-
//
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
if (validation.user.id !== currentPublicKey) {
|
|
498
|
-
// Session belongs to different identity - skip it
|
|
542
|
+
// Compare session's publicKey to current identity's publicKey
|
|
543
|
+
if (validation.user.publicKey !== currentPublicKey) {
|
|
544
|
+
// Session belongs to different identity - skip it and log warning
|
|
499
545
|
if (__DEV__) {
|
|
500
|
-
logger('Skipping session from different identity during restoration'
|
|
546
|
+
logger('CRITICAL: Skipping session from different identity during restoration', {
|
|
547
|
+
sessionPublicKey: validation.user.publicKey?.substring(0, 16) + '...',
|
|
548
|
+
currentPublicKey: currentPublicKey.substring(0, 16) + '...',
|
|
549
|
+
sessionId: sessionId.substring(0, 16) + '...'
|
|
550
|
+
});
|
|
501
551
|
}
|
|
552
|
+
// Mark for batch removal
|
|
553
|
+
invalidSessionIds.push(sessionId);
|
|
502
554
|
continue;
|
|
503
555
|
}
|
|
504
556
|
const now = new Date();
|
|
@@ -525,6 +577,26 @@ export const OxyProvider = ({
|
|
|
525
577
|
}
|
|
526
578
|
}
|
|
527
579
|
}
|
|
580
|
+
|
|
581
|
+
// Batch remove invalid sessions from storage (performance optimization)
|
|
582
|
+
if (invalidSessionIds.length > 0) {
|
|
583
|
+
try {
|
|
584
|
+
// Use Set for O(n) lookup instead of O(n²) with includes()
|
|
585
|
+
const invalidSessionSet = new Set(invalidSessionIds);
|
|
586
|
+
const updatedIds = storedSessionIds.filter(id => !invalidSessionSet.has(id));
|
|
587
|
+
await storage.setItem(storageKeys.sessionIds, JSON.stringify(updatedIds));
|
|
588
|
+
if (__DEV__) {
|
|
589
|
+
logger('Removed invalid sessions from storage', {
|
|
590
|
+
count: invalidSessionIds.length
|
|
591
|
+
});
|
|
592
|
+
}
|
|
593
|
+
} catch (cleanupError) {
|
|
594
|
+
// Ignore cleanup errors - will be cleaned on next restart
|
|
595
|
+
if (__DEV__) {
|
|
596
|
+
logger('Failed to remove invalid sessions from storage', cleanupError);
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
}
|
|
528
600
|
if (validSessions.length > 0) {
|
|
529
601
|
updateSessions(validSessions, {
|
|
530
602
|
merge: false
|
|
@@ -633,13 +705,11 @@ export const OxyProvider = ({
|
|
|
633
705
|
}, [isAuthenticatedFromStore, isAuthenticatedFromSessions]);
|
|
634
706
|
|
|
635
707
|
// Get userId from JWT token (MongoDB ObjectId) for socket room matching
|
|
636
|
-
// user.id
|
|
637
|
-
// The JWT token's userId field contains the MongoDB ObjectId
|
|
708
|
+
// user.id contains the MongoDB ObjectId, user.publicKey contains the cryptographic public key
|
|
638
709
|
const userId = oxyServices.getCurrentUserId() || user?.id;
|
|
639
710
|
|
|
640
711
|
// Use Zustand store for transfer state management
|
|
641
|
-
|
|
642
|
-
const ACTIVE_TRANSFER_STORAGE_KEY = `${storageKeyPrefix}_active_transfer_id`;
|
|
712
|
+
// Storage keys are defined above (TRANSFER_CODES_STORAGE_KEY, ACTIVE_TRANSFER_STORAGE_KEY)
|
|
643
713
|
const isRestored = useTransferStore(state => state.isRestored);
|
|
644
714
|
const restoreFromStorage = useTransferStore(state => state.restoreFromStorage);
|
|
645
715
|
const markRestored = useTransferStore(state => state.markRestored);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","Platform","OxyServices","toast","useAuthStore","useShallow","useSessionSocket","useStorage","useLanguageManagement","useSessionManagement","useAuthOperations","useDeviceManagement","getStorageKeys","isInvalidSessionError","isTimeoutOrNetworkError","showBottomSheet","globalShowBottomSheet","useQueryClient","clearQueryCache","KeyManager","translate","updateAvatarVisibility","updateProfileWithAvatar","useAccountStore","logger","loggerUtil","useTransferStore","useTransferCodesForPersistence","useCheckPendingTransfers","jsx","_jsx","OxyContext","cachedUseFollowHook","loadUseFollowHook","useFollow","require","error","__DEV__","warn","component","method","fallback","Error","OxyProvider","children","oxyServices","providedOxyServices","baseURL","storageKeyPrefix","onAuthStateChange","onError","oxyServicesRef","current","user","isAuthenticated","isAuthenticatedFromStore","isLoading","loginSuccess","loginFailure","logoutStore","isIdentitySyncedStore","isSyncing","setIdentitySynced","setSyncing","state","logout","isIdentitySynced","tokenReady","setTokenReady","initializedRef","setAuthState","setState","message","err","undefined","console","storageKeys","storage","isReady","isStorageReady","OS","checkAndRestoreIdentity","invalidateCache","hasIdentity","isValid","verifyIdentityIntegrity","restored","restoreIdentityFromBackup","backupIdentity","currentLanguage","metadata","currentLanguageMetadata","languageName","currentLanguageName","nativeLanguageName","currentNativeLanguageName","setLanguage","applyLanguagePreference","languageKey","language","queryClient","sessions","activeSessionId","setActiveSessionId","setActiveSessionIdFromHook","updateSessions","switchSession","refreshSessions","clearSessionState","saveActiveSessionId","trackRemovedSession","setAuthError","createIdentity","importIdentity","importIdentityBase","signIn","logoutAll","getPublicKey","syncIdentity","syncIdentityBase","backupData","password","clearAllAccountData","clear","removeItem","getState","reset","clearCache","getAllPendingTransfersStore","getAllPendingTransfers","getActiveTransferIdStore","getActiveTransferId","storeTransferCodeStore","storeTransferCode","getTransferCodeStore","getTransferCode","updateTransferStateStore","updateTransferState","clearTransferCodeStore","clearTransferCode","deleteIdentityAndClearAccount","skipBackup","force","userConfirmed","pendingTransfers","length","activeTransferId","hasActiveTransfer","some","t","transferId","deleteIdentity","wasOffline","checkTimeout","lastReconnectionLog","RECONNECTION_LOG_DEBOUNCE_MS","stateRef","consecutiveFailures","currentInterval","baseInterval","maxInterval","maxFailures","scheduleNextCheck","clearTimeout","setTimeout","checkNetworkAndSync","healthCheck","catch","now","Date","timeSinceLastLog","hasIdentityValue","syncStatus","getItem","syncError","code","debug","backoffMultiplier","Math","min","pow","getDeviceSessions","logoutAllDeviceSessions","updateDeviceName","useFollowHook","restoreSessionsFromStorage","currentPublicKey","storedSessionIdsJson","sessionIds","storedSessionIds","JSON","parse","storedActiveSessionId","validSessions","sessionId","validation","validateSession","useHeaderValidation","valid","id","push","deviceId","expiresAt","getTime","toISOString","lastActive","userId","toString","isCurrent","validationError","merge","switchError","filter","session","matchingSession","find","s","firstSession","String","activeSession","currentDeviceId","isAuthenticatedFromSessions","computedIsAuthenticated","getCurrentUserId","TRANSFER_CODES_STORAGE_KEY","ACTIVE_TRANSFER_STORAGE_KEY","isRestored","restoreFromStorage","markRestored","cleanupExpired","loadTransferCodes","storedCodes","storedActiveTransferId","parsedCodes","Object","keys","count","transferCodes","persistTransferCodes","setItem","stringify","cleanup","setInterval","clearInterval","sourceDeviceId","publicKey","substring","refreshSessionsWithUser","handleSessionRemoved","handleRemoteSignOut","info","remoteError","handleIdentityTransferComplete","data","hasActiveSession","storedTransfer","publicKeyMatches","receivedPublicKey","storedPublicKey","deviceIdMatches","receivedDeviceId","storedDeviceId","transferCode","codeMatches","toUpperCase","receivedCode","storedCode","transferAge","timestamp","tenMinutes","age","ageMinutes","round","identityStillExists","identityDeleted","success","deleteError","getBaseURL","getAccessToken","onRemoteSignOut","onSessionRemoved","onIdentityTransferComplete","switchSessionForContext","showBottomSheetForContext","screenOrConfig","openAvatarPicker","screen","props","selectMode","multiSelect","disabledMimeTypes","afterSelect","onSelect","file","contentType","startsWith","avatar","e","contextValue","isTokenReady","identitySyncState","isSynced","removeSession","Provider","value","OxyContextProvider","useOxy","context"],"sourceRoot":"../../../../src","sources":["ui/context/OxyContext.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createContext","useCallback","useContext","useEffect","useLayoutEffect","useMemo","useRef","useState","Platform","OxyServices","toast","useAuthStore","useShallow","useSessionSocket","useStorage","useLanguageManagement","useSessionManagement","useAuthOperations","useDeviceManagement","getStorageKeys","isInvalidSessionError","isTimeoutOrNetworkError","showBottomSheet","globalShowBottomSheet","useQueryClient","clearQueryCache","KeyManager","translate","updateAvatarVisibility","updateProfileWithAvatar","useAccountStore","logger","loggerUtil","useTransferStore","useTransferCodesForPersistence","useCheckPendingTransfers","jsx","_jsx","OxyContext","cachedUseFollowHook","loadUseFollowHook","useFollow","require","error","__DEV__","warn","component","method","fallback","Error","OxyProvider","children","oxyServices","providedOxyServices","baseURL","storageKeyPrefix","onAuthStateChange","onError","oxyServicesRef","current","user","isAuthenticated","isAuthenticatedFromStore","isLoading","loginSuccess","loginFailure","logoutStore","isIdentitySyncedStore","isSyncing","setIdentitySynced","setSyncing","state","logout","isIdentitySynced","tokenReady","setTokenReady","initializedRef","setAuthState","setState","message","err","undefined","console","storageKeys","storage","isReady","isStorageReady","OS","invalidateCache","checkAndRestoreIdentity","hasIdentity","isValid","verifyIdentityIntegrity","restored","restoreIdentityFromBackup","backupIdentity","currentLanguage","metadata","currentLanguageMetadata","languageName","currentLanguageName","nativeLanguageName","currentNativeLanguageName","setLanguage","applyLanguagePreference","languageKey","language","queryClient","sessions","activeSessionId","setActiveSessionId","setActiveSessionIdFromHook","updateSessions","switchSession","refreshSessions","clearSessionState","saveActiveSessionId","trackRemovedSession","setAuthError","createIdentity","importIdentity","importIdentityBase","signIn","logoutAll","getPublicKey","syncIdentity","syncIdentityBase","backupData","password","TRANSFER_CODES_STORAGE_KEY","ACTIVE_TRANSFER_STORAGE_KEY","clearAllAccountData","clear","removeItem","getState","reset","clearAll","clearCache","getAllPendingTransfersStore","getAllPendingTransfers","getActiveTransferIdStore","getActiveTransferId","storeTransferCodeStore","storeTransferCode","getTransferCodeStore","getTransferCode","updateTransferStateStore","updateTransferState","clearTransferCodeStore","clearTransferCode","deleteIdentityAndClearAccount","skipBackup","force","userConfirmed","pendingTransfers","length","activeTransferId","hasActiveTransfer","some","t","transferId","deleteIdentity","wasOffline","checkTimeout","lastReconnectionLog","RECONNECTION_LOG_DEBOUNCE_MS","stateRef","consecutiveFailures","currentInterval","baseInterval","maxInterval","maxFailures","scheduleNextCheck","clearTimeout","setTimeout","checkNetworkAndSync","healthCheck","catch","now","Date","timeSinceLastLog","hasIdentityValue","syncStatus","getItem","syncError","code","debug","backoffMultiplier","Math","min","pow","getDeviceSessions","logoutAllDeviceSessions","updateDeviceName","useFollowHook","restoreSessionsFromStorage","currentPublicKey","storedSessionIdsJson","sessionIds","storedSessionIds","JSON","parse","storedActiveSessionId","publicKey","substring","sessionCount","validSessions","invalidSessionIds","sessionId","validation","validateSession","useHeaderValidation","valid","sessionPublicKey","push","deviceId","expiresAt","getTime","toISOString","lastActive","userId","id","toString","isCurrent","validationError","invalidSessionSet","Set","updatedIds","filter","has","setItem","stringify","count","cleanupError","merge","switchError","session","matchingSession","find","s","firstSession","String","activeSession","currentDeviceId","isAuthenticatedFromSessions","computedIsAuthenticated","getCurrentUserId","isRestored","restoreFromStorage","markRestored","cleanupExpired","loadTransferCodes","storedCodes","storedActiveTransferId","parsedCodes","Object","keys","transferCodes","persistTransferCodes","cleanup","setInterval","clearInterval","sourceDeviceId","refreshSessionsWithUser","handleSessionRemoved","handleRemoteSignOut","info","remoteError","handleIdentityTransferComplete","data","hasActiveSession","storedTransfer","publicKeyMatches","receivedPublicKey","storedPublicKey","deviceIdMatches","receivedDeviceId","storedDeviceId","transferCode","codeMatches","toUpperCase","receivedCode","storedCode","transferAge","timestamp","tenMinutes","age","ageMinutes","round","identityStillExists","identityDeleted","success","deleteError","getBaseURL","getAccessToken","onRemoteSignOut","onSessionRemoved","onIdentityTransferComplete","switchSessionForContext","showBottomSheetForContext","screenOrConfig","openAvatarPicker","screen","props","selectMode","multiSelect","disabledMimeTypes","afterSelect","onSelect","file","contentType","startsWith","avatar","e","contextValue","isTokenReady","identitySyncState","isSynced","removeSession","Provider","value","OxyContextProvider","useOxy","context"],"sourceRoot":"../../../../src","sources":["ui/context/OxyContext.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -41,12 +41,26 @@ export const useAuthOperations = ({
|
|
|
41
41
|
*/
|
|
42
42
|
const clearSessionsIfIdentityChanged = useCallback(async (oldPublicKey, newPublicKey) => {
|
|
43
43
|
if (oldPublicKey && oldPublicKey !== newPublicKey) {
|
|
44
|
+
if (__DEV__ && logger) {
|
|
45
|
+
logger('CRITICAL: Identity changed - clearing all session data', {
|
|
46
|
+
oldPublicKey: oldPublicKey.substring(0, 16) + '...',
|
|
47
|
+
newPublicKey: newPublicKey.substring(0, 16) + '...'
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
44
51
|
// Clear all session state to prevent old identity's data from showing up
|
|
45
52
|
await clearSessionState();
|
|
46
|
-
|
|
53
|
+
|
|
54
|
+
// Logout from auth store (clears user, isAuthenticated, etc.)
|
|
47
55
|
logoutStore();
|
|
56
|
+
|
|
57
|
+
// Force KeyManager cache invalidation
|
|
58
|
+
KeyManager.invalidateCache();
|
|
59
|
+
if (__DEV__ && logger) {
|
|
60
|
+
logger('Session state cleared for new identity');
|
|
61
|
+
}
|
|
48
62
|
}
|
|
49
|
-
}, [clearSessionState, logoutStore]);
|
|
63
|
+
}, [clearSessionState, logoutStore, logger]);
|
|
50
64
|
|
|
51
65
|
/**
|
|
52
66
|
* Internal function to perform challenge-response sign in (works offline)
|
|
@@ -213,8 +227,13 @@ export const useAuthOperations = ({
|
|
|
213
227
|
/**
|
|
214
228
|
* Create a new identity (offline-first)
|
|
215
229
|
* Identity is purely cryptographic - no username or email required
|
|
230
|
+
*
|
|
231
|
+
* This function generates keys locally and does NOT register with the server yet.
|
|
232
|
+
* Registration will happen during syncIdentity() or when username is provided.
|
|
233
|
+
*
|
|
234
|
+
* @param username - Optional username to set during registration (if online)
|
|
216
235
|
*/
|
|
217
|
-
const createIdentity = useCallback(async
|
|
236
|
+
const createIdentity = useCallback(async username => {
|
|
218
237
|
if (!storage) throw new Error('Storage not initialized');
|
|
219
238
|
setAuthState({
|
|
220
239
|
isLoading: true,
|
|
@@ -224,6 +243,11 @@ export const useAuthOperations = ({
|
|
|
224
243
|
// CRITICAL: Get old public key before creating new identity
|
|
225
244
|
// If identity changes, we must clear all session data to prevent data leakage
|
|
226
245
|
const oldPublicKey = await KeyManager.getPublicKey().catch(() => null);
|
|
246
|
+
if (__DEV__ && logger) {
|
|
247
|
+
logger('Creating new identity', {
|
|
248
|
+
hadPreviousIdentity: !!oldPublicKey
|
|
249
|
+
});
|
|
250
|
+
}
|
|
227
251
|
|
|
228
252
|
// Generate new key pair directly (works offline)
|
|
229
253
|
const {
|
|
@@ -231,37 +255,59 @@ export const useAuthOperations = ({
|
|
|
231
255
|
privateKey
|
|
232
256
|
} = await KeyManager.generateKeyPair();
|
|
233
257
|
await KeyManager.importKeyPair(privateKey);
|
|
258
|
+
if (__DEV__ && logger) {
|
|
259
|
+
logger('Identity keys generated', {
|
|
260
|
+
publicKey: publicKey.substring(0, 16) + '...'
|
|
261
|
+
});
|
|
262
|
+
}
|
|
234
263
|
|
|
235
264
|
// Clear sessions if identity changed (prevents data leakage)
|
|
236
265
|
await clearSessionsIfIdentityChanged(oldPublicKey, publicKey);
|
|
237
266
|
|
|
238
|
-
// Mark as not synced
|
|
267
|
+
// Mark as not synced initially
|
|
239
268
|
await storage.setItem('oxy_identity_synced', 'false');
|
|
240
269
|
setIdentitySynced(false);
|
|
241
270
|
|
|
242
|
-
//
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
271
|
+
// If username provided, try to register immediately (online only)
|
|
272
|
+
if (username) {
|
|
273
|
+
// Validate username format before attempting registration
|
|
274
|
+
const trimmedUsername = username.trim();
|
|
275
|
+
if (trimmedUsername && /^[a-zA-Z0-9]{3,30}$/.test(trimmedUsername)) {
|
|
276
|
+
try {
|
|
277
|
+
const {
|
|
278
|
+
signature,
|
|
279
|
+
timestamp
|
|
280
|
+
} = await SignatureService.createRegistrationSignature();
|
|
281
|
+
await oxyServices.register(publicKey, signature, timestamp, trimmedUsername);
|
|
282
|
+
|
|
283
|
+
// Mark as synced (Zustand store + storage)
|
|
284
|
+
await storage.setItem('oxy_identity_synced', 'true');
|
|
285
|
+
setIdentitySynced(true);
|
|
286
|
+
if (__DEV__ && logger) {
|
|
287
|
+
logger('Identity synced with server successfully with username');
|
|
288
|
+
}
|
|
289
|
+
return {
|
|
290
|
+
synced: true
|
|
291
|
+
};
|
|
292
|
+
} catch (syncError) {
|
|
293
|
+
// Offline or server error - identity created locally but not synced
|
|
294
|
+
if (__DEV__ && logger) {
|
|
295
|
+
logger('Identity created locally with username (offline), will sync when online', syncError);
|
|
296
|
+
}
|
|
297
|
+
return {
|
|
298
|
+
synced: false
|
|
299
|
+
};
|
|
300
|
+
}
|
|
260
301
|
}
|
|
261
|
-
return {
|
|
262
|
-
synced: false
|
|
263
|
-
};
|
|
264
302
|
}
|
|
303
|
+
|
|
304
|
+
// No username provided - defer registration until later
|
|
305
|
+
if (__DEV__ && logger) {
|
|
306
|
+
logger('Identity created locally without username, will register during sync');
|
|
307
|
+
}
|
|
308
|
+
return {
|
|
309
|
+
synced: false
|
|
310
|
+
};
|
|
265
311
|
} catch (error) {
|
|
266
312
|
// CRITICAL: Never delete identity on error - it may have been successfully created
|
|
267
313
|
// Only log the error and let the user recover using their backup file
|
|
@@ -277,7 +323,7 @@ export const useAuthOperations = ({
|
|
|
277
323
|
await storage.setItem('oxy_identity_synced', 'false').catch(() => {});
|
|
278
324
|
setIdentitySynced(false);
|
|
279
325
|
if (__DEV__ && logger) {
|
|
280
|
-
logger('Identity was created but sync failed - user can sync later
|
|
326
|
+
logger('Identity was created but sync failed - user can sync later');
|
|
281
327
|
}
|
|
282
328
|
} else {
|
|
283
329
|
// No identity exists - this was a generation failure, safe to clean up sync flag
|
|
@@ -316,8 +362,10 @@ export const useAuthOperations = ({
|
|
|
316
362
|
/**
|
|
317
363
|
* Sync local identity with server (call when online)
|
|
318
364
|
* TanStack Query handles offline mutations automatically
|
|
365
|
+
*
|
|
366
|
+
* @param username - Optional username to set during sync
|
|
319
367
|
*/
|
|
320
|
-
const syncIdentity = useCallback(async
|
|
368
|
+
const syncIdentity = useCallback(async username => {
|
|
321
369
|
if (!storage) throw new Error('Storage not initialized');
|
|
322
370
|
setAuthState({
|
|
323
371
|
isLoading: true,
|
|
@@ -347,7 +395,7 @@ export const useAuthOperations = ({
|
|
|
347
395
|
signature,
|
|
348
396
|
timestamp
|
|
349
397
|
} = await SignatureService.createRegistrationSignature();
|
|
350
|
-
await oxyServices.register(publicKey, signature, timestamp);
|
|
398
|
+
await oxyServices.register(publicKey, signature, timestamp, username);
|
|
351
399
|
}
|
|
352
400
|
|
|
353
401
|
// Mark as synced (Zustand store + storage)
|
|
@@ -357,13 +405,6 @@ export const useAuthOperations = ({
|
|
|
357
405
|
// Sign in
|
|
358
406
|
const user = await performSignIn(publicKey);
|
|
359
407
|
|
|
360
|
-
// Check if user has username - required for syncing
|
|
361
|
-
if (!user.username) {
|
|
362
|
-
const usernameError = new Error('USERNAME_REQUIRED');
|
|
363
|
-
usernameError.code = 'USERNAME_REQUIRED';
|
|
364
|
-
throw usernameError;
|
|
365
|
-
}
|
|
366
|
-
|
|
367
408
|
// TanStack Query will automatically retry any pending mutations
|
|
368
409
|
|
|
369
410
|
return user;
|
|
@@ -389,8 +430,12 @@ export const useAuthOperations = ({
|
|
|
389
430
|
|
|
390
431
|
/**
|
|
391
432
|
* Import identity from backup file data (offline-first)
|
|
433
|
+
*
|
|
434
|
+
* @param backupData - The backup data to import
|
|
435
|
+
* @param password - Password to decrypt the backup
|
|
436
|
+
* @param username - Optional username to set during registration
|
|
392
437
|
*/
|
|
393
|
-
const importIdentity = useCallback(async (backupData, password) => {
|
|
438
|
+
const importIdentity = useCallback(async (backupData, password, username) => {
|
|
394
439
|
if (!storage) throw new Error('Storage not initialized');
|
|
395
440
|
|
|
396
441
|
// Validate arguments - ensure backupData is an object, not a string (old signature)
|
|
@@ -411,6 +456,12 @@ export const useAuthOperations = ({
|
|
|
411
456
|
// CRITICAL: Get old public key before importing new identity
|
|
412
457
|
// If identity changes, we must clear all session data to prevent data leakage
|
|
413
458
|
const oldPublicKey = await KeyManager.getPublicKey().catch(() => null);
|
|
459
|
+
if (__DEV__ && logger) {
|
|
460
|
+
logger('Importing identity from backup', {
|
|
461
|
+
hadPreviousIdentity: !!oldPublicKey,
|
|
462
|
+
backupPublicKey: backupData.publicKey.substring(0, 16) + '...'
|
|
463
|
+
});
|
|
464
|
+
}
|
|
414
465
|
|
|
415
466
|
// Decrypt private key from backup data
|
|
416
467
|
const Crypto = await import('expo-crypto');
|
|
@@ -440,6 +491,11 @@ export const useAuthOperations = ({
|
|
|
440
491
|
|
|
441
492
|
// Import the key pair
|
|
442
493
|
const publicKey = await KeyManager.importKeyPair(privateKey);
|
|
494
|
+
if (__DEV__ && logger) {
|
|
495
|
+
logger('Identity keys imported', {
|
|
496
|
+
publicKey: publicKey.substring(0, 16) + '...'
|
|
497
|
+
});
|
|
498
|
+
}
|
|
443
499
|
|
|
444
500
|
// Verify public key matches
|
|
445
501
|
if (publicKey !== backupData.publicKey) {
|
|
@@ -472,7 +528,7 @@ export const useAuthOperations = ({
|
|
|
472
528
|
signature,
|
|
473
529
|
timestamp
|
|
474
530
|
} = await SignatureService.createRegistrationSignature();
|
|
475
|
-
await oxyServices.register(publicKey, signature, timestamp);
|
|
531
|
+
await oxyServices.register(publicKey, signature, timestamp, username);
|
|
476
532
|
await storage.setItem('oxy_identity_synced', 'true');
|
|
477
533
|
setIdentitySynced(true);
|
|
478
534
|
return {
|