@oxyhq/services 5.16.30 → 5.16.32
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/services/SessionService.js +2 -1
- package/lib/commonjs/core/services/SessionService.js.map +1 -1
- package/lib/commonjs/core/services/TokenService.js +17 -9
- package/lib/commonjs/core/services/TokenService.js.map +1 -1
- package/lib/commonjs/models/interfaces.js +9 -8
- package/lib/commonjs/models/interfaces.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +40 -4
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +25 -14
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +12 -4
- package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
- package/lib/commonjs/ui/hooks/useSessionManagement.js +8 -0
- package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/commonjs/ui/utils/sessionHelpers.js +26 -11
- package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -1
- package/lib/commonjs/utils/sessionUtils.js +8 -1
- package/lib/commonjs/utils/sessionUtils.js.map +1 -1
- package/lib/module/core/services/SessionService.js +2 -1
- package/lib/module/core/services/SessionService.js.map +1 -1
- package/lib/module/core/services/TokenService.js +17 -9
- package/lib/module/core/services/TokenService.js.map +1 -1
- package/lib/module/models/interfaces.js +9 -8
- package/lib/module/models/interfaces.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +40 -4
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +25 -14
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/hooks/queries/useServicesQueries.js +13 -5
- package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
- package/lib/module/ui/hooks/useSessionManagement.js +8 -0
- package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
- package/lib/module/ui/utils/sessionHelpers.js +26 -11
- package/lib/module/ui/utils/sessionHelpers.js.map +1 -1
- package/lib/module/utils/sessionUtils.js +8 -1
- package/lib/module/utils/sessionUtils.js.map +1 -1
- package/lib/typescript/core/services/SessionService.d.ts +4 -2
- package/lib/typescript/core/services/SessionService.d.ts.map +1 -1
- package/lib/typescript/core/services/TokenService.d.ts +8 -3
- package/lib/typescript/core/services/TokenService.d.ts.map +1 -1
- package/lib/typescript/models/interfaces.d.ts +9 -8
- package/lib/typescript/models/interfaces.d.ts.map +1 -1
- package/lib/typescript/models/session.d.ts +4 -2
- package/lib/typescript/models/session.d.ts.map +1 -1
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -1
- package/lib/typescript/ui/utils/sessionHelpers.d.ts +6 -2
- package/lib/typescript/ui/utils/sessionHelpers.d.ts.map +1 -1
- package/lib/typescript/utils/sessionUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/core/services/SessionService.ts +4 -2
- package/src/core/services/TokenService.ts +18 -10
- package/src/models/interfaces.ts +11 -10
- package/src/models/session.ts +5 -3
- package/src/ui/context/OxyContext.tsx +56 -20
- package/src/ui/context/hooks/useAuthOperations.ts +23 -15
- package/src/ui/hooks/auth/index.ts +1 -0
- package/src/ui/hooks/queries/useServicesQueries.ts +8 -3
- package/src/ui/hooks/useSessionManagement.ts +8 -1
- package/src/ui/utils/sessionHelpers.ts +32 -15
- package/src/utils/sessionUtils.ts +8 -1
|
@@ -14,7 +14,8 @@ var _sessionHelpers = require("../../utils/sessionHelpers");
|
|
|
14
14
|
const useSessions = (userId, options) => {
|
|
15
15
|
const {
|
|
16
16
|
oxyServices,
|
|
17
|
-
activeSessionId
|
|
17
|
+
activeSessionId,
|
|
18
|
+
user
|
|
18
19
|
} = (0, _OxyContext.useOxy)();
|
|
19
20
|
return (0, _reactQuery.useQuery)({
|
|
20
21
|
queryKey: _queryKeys.queryKeys.sessions.list(userId),
|
|
@@ -22,11 +23,13 @@ const useSessions = (userId, options) => {
|
|
|
22
23
|
if (!activeSessionId) {
|
|
23
24
|
throw new Error('No active session');
|
|
24
25
|
}
|
|
26
|
+
const publicKey = user?.publicKey || user?.id || ''; // user.id is now publicKey
|
|
25
27
|
const sessions = await (0, _sessionHelpers.fetchSessionsWithFallback)(oxyServices, activeSessionId, {
|
|
26
28
|
fallbackDeviceId: undefined,
|
|
27
|
-
fallbackUserId: userId
|
|
29
|
+
fallbackUserId: userId,
|
|
30
|
+
fallbackPublicKey: publicKey
|
|
28
31
|
});
|
|
29
|
-
return
|
|
32
|
+
return sessions; // Already mapped by fetchSessionsWithFallback
|
|
30
33
|
},
|
|
31
34
|
enabled: options?.enabled !== false && !!activeSessionId,
|
|
32
35
|
staleTime: 2 * 60 * 1000,
|
|
@@ -56,13 +59,18 @@ const useSession = (sessionId, options) => {
|
|
|
56
59
|
throw new Error('Session not found or invalid');
|
|
57
60
|
}
|
|
58
61
|
const now = new Date();
|
|
62
|
+
// user.id is now publicKey (canonical identity)
|
|
63
|
+
const publicKey = validation.user.publicKey || validation.user.id || '';
|
|
59
64
|
return {
|
|
60
65
|
sessionId,
|
|
61
66
|
deviceId: '',
|
|
62
67
|
// Device ID not available from validation response
|
|
63
68
|
expiresAt: validation.expiresAt || new Date(now.getTime() + 7 * 24 * 60 * 60 * 1000).toISOString(),
|
|
64
69
|
lastActive: validation.lastActivity || now.toISOString(),
|
|
65
|
-
|
|
70
|
+
publicKey,
|
|
71
|
+
// Canonical user identity
|
|
72
|
+
userId: validation.user.id?.toString(),
|
|
73
|
+
// Optional MongoDB ObjectId
|
|
66
74
|
isCurrent: false
|
|
67
75
|
};
|
|
68
76
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactQuery","require","_queryKeys","_OxyContext","_sessionHelpers","useSessions","userId","options","oxyServices","activeSessionId","useOxy","useQuery","queryKey","queryKeys","sessions","list","queryFn","Error","fetchSessionsWithFallback","fallbackDeviceId","undefined","fallbackUserId","
|
|
1
|
+
{"version":3,"names":["_reactQuery","require","_queryKeys","_OxyContext","_sessionHelpers","useSessions","userId","options","oxyServices","activeSessionId","user","useOxy","useQuery","queryKey","queryKeys","sessions","list","queryFn","Error","publicKey","id","fetchSessionsWithFallback","fallbackDeviceId","undefined","fallbackUserId","fallbackPublicKey","enabled","staleTime","gcTime","exports","useSession","sessionId","detail","validation","validateSession","useHeaderValidation","valid","now","Date","deviceId","expiresAt","getTime","toISOString","lastActive","lastActivity","toString","isCurrent","useDeviceSessions","active","getDeviceSessions","useUserDevices","isAuthenticated","syncIdentity","devices","hasValidToken","getTokenBySession","tokenError","errorMessage","message","String","includes","syncError","getUserDevices","error","status","response","retryError","useSecurityInfo","all","getSecurityInfo"],"sourceRoot":"../../../../../src","sources":["ui/hooks/queries/useServicesQueries.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -181,8 +181,11 @@ const useSessionManagement = ({
|
|
|
181
181
|
const user = validation.user;
|
|
182
182
|
await activateSession(sessionId, user);
|
|
183
183
|
try {
|
|
184
|
+
const publicKey = user.publicKey || user.id || ''; // user.id is now publicKey
|
|
184
185
|
const deviceSessions = await (0, _sessionHelpers.fetchSessionsWithFallback)(oxyServices, sessionId, {
|
|
185
186
|
fallbackUserId: user.id,
|
|
187
|
+
// Still pass for backward compatibility
|
|
188
|
+
fallbackPublicKey: publicKey,
|
|
186
189
|
logger
|
|
187
190
|
});
|
|
188
191
|
updateSessions(deviceSessions, {
|
|
@@ -231,8 +234,13 @@ const useSessionManagement = ({
|
|
|
231
234
|
lastRefreshRef.current = now;
|
|
232
235
|
const refreshPromise = (async () => {
|
|
233
236
|
try {
|
|
237
|
+
// Get publicKey from active session or current user
|
|
238
|
+
const activeSession = sessions.find(s => s.sessionId === activeSessionId);
|
|
239
|
+
const publicKey = activeSession?.publicKey || activeUserId || ''; // Fallback to userId if publicKey not available
|
|
240
|
+
|
|
234
241
|
const deviceSessions = await (0, _sessionHelpers.fetchSessionsWithFallback)(oxyServices, activeSessionId, {
|
|
235
242
|
fallbackUserId: activeUserId,
|
|
243
|
+
fallbackPublicKey: publicKey,
|
|
236
244
|
logger
|
|
237
245
|
});
|
|
238
246
|
updateSessions(deviceSessions, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_sessionUtils","_sessionHelpers","_storageHelpers","_errorHandlers","_queryClient","DEFAULT_SAVE_ERROR_MESSAGE","CLEAR_STORAGE_ERROR","useSessionManagement","oxyServices","storage","storageKeyPrefix","loginSuccess","logoutStore","applyLanguagePreference","onAuthStateChange","onError","setAuthError","logger","setTokenReady","queryClient","sessions","setSessions","useState","activeSessionId","setActiveSessionId","refreshInFlightRef","useRef","removedSessionsRef","Set","lastRefreshRef","storageKeys","useMemo","getStorageKeys","saveSessionIds","useCallback","sessionIds","uniqueIds","Array","from","setItem","JSON","stringify","error","__DEV__","console","warn","updateSessions","incoming","options","prevSessions","processed","merge","mergeSessions","normalizeAndSortSessions","map","session","sessionId","sessionsArraysEqual","saveActiveSessionId","handleAuthError","defaultMessage","code","removeActiveSessionId","removeItem","clearSessionStorage","catch","clearSessionState","clear","clearQueryCache","activateSession","user","getTokenBySession","trackRemovedSession","current","add","setTimeout","delete","findReplacementSession","length","validationResults","validateSessionBatch","maxConcurrency","validSession","find","result","valid","validation","validateSession","useHeaderValidation","switchSession","Error","deviceSessions","fetchSessionsWithFallback","fallbackUserId","id","invalidSession","isInvalidSessionError","filter","otherSessionIds","has","replacementUser","refreshSessions","activeUserId","now","Date","refreshPromise","otherSessions","isRefreshInFlight","Boolean","exports"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSessionManagement.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_sessionUtils","_sessionHelpers","_storageHelpers","_errorHandlers","_queryClient","DEFAULT_SAVE_ERROR_MESSAGE","CLEAR_STORAGE_ERROR","useSessionManagement","oxyServices","storage","storageKeyPrefix","loginSuccess","logoutStore","applyLanguagePreference","onAuthStateChange","onError","setAuthError","logger","setTokenReady","queryClient","sessions","setSessions","useState","activeSessionId","setActiveSessionId","refreshInFlightRef","useRef","removedSessionsRef","Set","lastRefreshRef","storageKeys","useMemo","getStorageKeys","saveSessionIds","useCallback","sessionIds","uniqueIds","Array","from","setItem","JSON","stringify","error","__DEV__","console","warn","updateSessions","incoming","options","prevSessions","processed","merge","mergeSessions","normalizeAndSortSessions","map","session","sessionId","sessionsArraysEqual","saveActiveSessionId","handleAuthError","defaultMessage","code","removeActiveSessionId","removeItem","clearSessionStorage","catch","clearSessionState","clear","clearQueryCache","activateSession","user","getTokenBySession","trackRemovedSession","current","add","setTimeout","delete","findReplacementSession","length","validationResults","validateSessionBatch","maxConcurrency","validSession","find","result","valid","validation","validateSession","useHeaderValidation","switchSession","Error","publicKey","id","deviceSessions","fetchSessionsWithFallback","fallbackUserId","fallbackPublicKey","invalidSession","isInvalidSessionError","filter","otherSessionIds","has","replacementUser","refreshSessions","activeUserId","now","Date","refreshPromise","activeSession","s","otherSessions","isRefreshInFlight","Boolean","exports"],"sourceRoot":"../../../../src","sources":["ui/hooks/useSessionManagement.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,17 +10,31 @@ exports.validateSessionBatch = exports.mapSessionsToClient = exports.fetchSessio
|
|
|
10
10
|
* @param sessions - Raw session array returned from the API
|
|
11
11
|
* @param fallbackDeviceId - Device identifier to use when missing from payload
|
|
12
12
|
* @param fallbackUserId - User identifier to use when missing from payload
|
|
13
|
+
* @param fallbackPublicKey - Public key to use when missing from payload (canonical identity)
|
|
13
14
|
*/
|
|
14
|
-
const mapSessionsToClient = (sessions, fallbackDeviceId, fallbackUserId) => {
|
|
15
|
+
const mapSessionsToClient = (sessions, fallbackDeviceId, fallbackUserId, fallbackPublicKey) => {
|
|
15
16
|
const now = new Date();
|
|
16
|
-
return sessions.map(session =>
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
return sessions.map(session => {
|
|
18
|
+
// publicKey is the canonical user identity (user.id now equals publicKey)
|
|
19
|
+
// Extract from user.id (which is now publicKey), user.publicKey, or session.publicKey
|
|
20
|
+
const publicKey = session.user?.id ||
|
|
21
|
+
// user.id is now publicKey (canonical identifier)
|
|
22
|
+
session.user?.publicKey || session.publicKey || fallbackPublicKey || '';
|
|
23
|
+
|
|
24
|
+
// userId is MongoDB ObjectId (internal backend reference, optional)
|
|
25
|
+
const userId = session.userId || (session.user?._id ? session.user._id.toString() : undefined);
|
|
26
|
+
return {
|
|
27
|
+
sessionId: session.sessionId,
|
|
28
|
+
deviceId: session.deviceId || fallbackDeviceId || '',
|
|
29
|
+
expiresAt: session.expiresAt || new Date(now.getTime() + 7 * 24 * 60 * 60 * 1000).toISOString(),
|
|
30
|
+
lastActive: session.lastActive || now.toISOString(),
|
|
31
|
+
publicKey,
|
|
32
|
+
// Canonical user identity - REQUIRED
|
|
33
|
+
userId,
|
|
34
|
+
// MongoDB ObjectId (optional, for backward compatibility)
|
|
35
|
+
isCurrent: Boolean(session.isCurrent)
|
|
36
|
+
};
|
|
37
|
+
});
|
|
24
38
|
};
|
|
25
39
|
|
|
26
40
|
/**
|
|
@@ -34,17 +48,18 @@ exports.mapSessionsToClient = mapSessionsToClient;
|
|
|
34
48
|
const fetchSessionsWithFallback = async (oxyServices, sessionId, {
|
|
35
49
|
fallbackDeviceId,
|
|
36
50
|
fallbackUserId,
|
|
51
|
+
fallbackPublicKey,
|
|
37
52
|
logger
|
|
38
53
|
} = {}) => {
|
|
39
54
|
try {
|
|
40
55
|
const deviceSessions = await oxyServices.getDeviceSessions(sessionId);
|
|
41
|
-
return mapSessionsToClient(deviceSessions, fallbackDeviceId, fallbackUserId);
|
|
56
|
+
return mapSessionsToClient(deviceSessions, fallbackDeviceId, fallbackUserId, fallbackPublicKey);
|
|
42
57
|
} catch (error) {
|
|
43
58
|
if (__DEV__ && logger) {
|
|
44
59
|
logger('Failed to get device sessions, falling back to user sessions', error);
|
|
45
60
|
}
|
|
46
61
|
const userSessions = await oxyServices.getSessionsBySessionId(sessionId);
|
|
47
|
-
return mapSessionsToClient(userSessions, fallbackDeviceId, fallbackUserId);
|
|
62
|
+
return mapSessionsToClient(userSessions, fallbackDeviceId, fallbackUserId, fallbackPublicKey);
|
|
48
63
|
}
|
|
49
64
|
};
|
|
50
65
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mapSessionsToClient","sessions","fallbackDeviceId","fallbackUserId","now","Date","map","session","
|
|
1
|
+
{"version":3,"names":["mapSessionsToClient","sessions","fallbackDeviceId","fallbackUserId","fallbackPublicKey","now","Date","map","session","publicKey","user","id","userId","_id","toString","undefined","sessionId","deviceId","expiresAt","getTime","toISOString","lastActive","isCurrent","Boolean","exports","fetchSessionsWithFallback","oxyServices","logger","deviceSessions","getDeviceSessions","error","__DEV__","userSessions","getSessionsBySessionId","validateSessionBatch","sessionIds","useHeaderValidation","maxConcurrency","length","uniqueSessionIds","Array","from","Set","safeConcurrency","Math","max","min","results","index","worker","currentIndex","validation","validateSession","valid","push","raw","Promise","all"],"sourceRoot":"../../../../src","sources":["ui/utils/sessionHelpers.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,12 +23,19 @@ exports.sortSessions = sortSessions;
|
|
|
23
23
|
*/
|
|
24
24
|
function normalizeSession(session) {
|
|
25
25
|
const now = new Date().toISOString();
|
|
26
|
+
|
|
27
|
+
// publicKey is required (canonical user identity)
|
|
28
|
+
if (!session.publicKey) {
|
|
29
|
+
throw new Error(`Session ${session.sessionId} is missing required publicKey field`);
|
|
30
|
+
}
|
|
26
31
|
return {
|
|
27
32
|
sessionId: session.sessionId,
|
|
28
33
|
deviceId: session.deviceId || '',
|
|
29
34
|
expiresAt: session.expiresAt || now,
|
|
30
35
|
lastActive: session.lastActive || now,
|
|
31
|
-
|
|
36
|
+
publicKey: session.publicKey,
|
|
37
|
+
// Canonical user identity - required
|
|
38
|
+
userId: session.userId // Optional MongoDB ObjectId for backward compatibility
|
|
32
39
|
};
|
|
33
40
|
}
|
|
34
41
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["normalizeSession","session","now","Date","toISOString","sessionId","deviceId","expiresAt","lastActive","userId","sessionsEqual","a","b","sortSessions","sessions","sort","timeA","getTime","timeB","localeCompare","deduplicateSessions","sessionMap","Map","existing","get","set","existingTime","currentTime","Array","from","values","deduplicateSessionsByUserId","activeSessionId","length","userSessionMap","isCurrentActive","isExistingActive","normalizeAndSortSessions","deduplicateByUserId","normalized","map","deduplicatedBySessionId","finalSessions","mergeSessions","incoming","normalizedExisting","normalizedIncoming","merged","sessionsArraysEqual","sortedA","sortedB","every","index"],"sourceRoot":"../../../src","sources":["utils/sessionUtils.ts"],"mappings":";;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACO,SAASA,gBAAgBA,CAACC,OAAuD,EAAiB;EACvG,MAAMC,GAAG,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"names":["normalizeSession","session","now","Date","toISOString","publicKey","Error","sessionId","deviceId","expiresAt","lastActive","userId","sessionsEqual","a","b","sortSessions","sessions","sort","timeA","getTime","timeB","localeCompare","deduplicateSessions","sessionMap","Map","existing","get","set","existingTime","currentTime","Array","from","values","deduplicateSessionsByUserId","activeSessionId","length","userSessionMap","isCurrentActive","isExistingActive","normalizeAndSortSessions","deduplicateByUserId","normalized","map","deduplicatedBySessionId","finalSessions","mergeSessions","incoming","normalizedExisting","normalizedIncoming","merged","sessionsArraysEqual","sortedA","sortedB","every","index"],"sourceRoot":"../../../src","sources":["utils/sessionUtils.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
* - Single source of truth for session operations
|
|
11
11
|
* - Handles both online and offline sessions
|
|
12
12
|
* - Integrates with TokenService for token management
|
|
13
|
-
* -
|
|
13
|
+
* - publicKey is the canonical user identity (primary identifier)
|
|
14
|
+
* - Sessions are bound to local identity stored in Accounts app
|
|
14
15
|
*/
|
|
15
16
|
|
|
16
17
|
import { tokenService } from './TokenService';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["tokenService","SessionService","oxyServices","activeSession","sessions","constructor","getInstance","instance","initialize","getActiveSession","getAllSessions","createSession","publicKey","Error","refreshSession","refreshTokenIfNeeded","validateSession","Date","expiresAt","token","getAccessToken","invalidateSession","makeRequest","sessionId","undefined","cache","error","console","warn","clearTokens","filter","s","setActiveSession","session","existingIndex","findIndex","push","clearAllSessions","sessionService"],"sourceRoot":"../../../../src","sources":["core/services/SessionService.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,YAAY,QAAQ,gBAAgB;
|
|
1
|
+
{"version":3,"names":["tokenService","SessionService","oxyServices","activeSession","sessions","constructor","getInstance","instance","initialize","getActiveSession","getAllSessions","createSession","publicKey","Error","refreshSession","refreshTokenIfNeeded","validateSession","Date","expiresAt","token","getAccessToken","invalidateSession","makeRequest","sessionId","undefined","cache","error","console","warn","clearTokens","filter","s","setActiveSession","session","existingIndex","findIndex","push","clearAllSessions","sessionService"],"sourceRoot":"../../../../src","sources":["core/services/SessionService.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
* - Single storage location (no duplication)
|
|
11
11
|
* - Automatic token refresh when expiring soon
|
|
12
12
|
* - Type-safe token payload handling
|
|
13
|
-
* -
|
|
13
|
+
* - publicKey is the canonical user identity
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
import { jwtDecode } from 'jwt-decode';
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* AccessTokenPayload - Matches the token payload structure from API
|
|
20
|
-
*
|
|
20
|
+
* publicKey is the canonical user identity (ECDSA secp256k1 public key)
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
23
|
/**
|
|
@@ -100,20 +100,28 @@ class TokenService {
|
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
/**
|
|
103
|
-
* Get
|
|
104
|
-
* Returns
|
|
103
|
+
* Get publicKey from current access token
|
|
104
|
+
* Returns the user's public key (canonical user identity)
|
|
105
105
|
*/
|
|
106
|
-
|
|
106
|
+
getPublicKeyFromToken() {
|
|
107
107
|
const token = this.tokenStore.accessToken;
|
|
108
108
|
if (!token) return null;
|
|
109
109
|
try {
|
|
110
110
|
const decoded = jwtDecode(token);
|
|
111
|
-
return decoded.
|
|
111
|
+
return decoded.publicKey || null;
|
|
112
112
|
} catch {
|
|
113
113
|
return null;
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
+
/**
|
|
118
|
+
* @deprecated Use getPublicKeyFromToken() instead. This method is kept for backward compatibility.
|
|
119
|
+
* Get userId from current access token (returns publicKey, not MongoDB ObjectId)
|
|
120
|
+
*/
|
|
121
|
+
getUserIdFromToken() {
|
|
122
|
+
return this.getPublicKeyFromToken();
|
|
123
|
+
}
|
|
124
|
+
|
|
117
125
|
/**
|
|
118
126
|
* Refresh access token if expiring soon
|
|
119
127
|
* Returns promise that resolves when token is refreshed (or already valid)
|
|
@@ -172,10 +180,10 @@ class TokenService {
|
|
|
172
180
|
throw new Error('No access token in refresh response');
|
|
173
181
|
}
|
|
174
182
|
|
|
175
|
-
// Validate new token has
|
|
183
|
+
// Validate new token has publicKey (canonical user identity)
|
|
176
184
|
const newDecoded = jwtDecode(newToken);
|
|
177
|
-
if (newDecoded.
|
|
178
|
-
throw new Error(
|
|
185
|
+
if (!newDecoded.publicKey) {
|
|
186
|
+
throw new Error('Token missing publicKey after refresh');
|
|
179
187
|
}
|
|
180
188
|
this.setTokens(newToken);
|
|
181
189
|
} catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jwtDecode","TokenService","tokenStore","accessToken","refreshToken","refreshPromise","baseURL","constructor","getInstance","instance","initialize","getAccessToken","getRefreshToken","setTokens","clearTokens","hasAccessToken","isTokenExpiringSoon","token","decoded","exp","currentTime","Math","floor","Date","now","
|
|
1
|
+
{"version":3,"names":["jwtDecode","TokenService","tokenStore","accessToken","refreshToken","refreshPromise","baseURL","constructor","getInstance","instance","initialize","getAccessToken","getRefreshToken","setTokens","clearTokens","hasAccessToken","isTokenExpiringSoon","token","decoded","exp","currentTime","Math","floor","Date","now","getPublicKeyFromToken","publicKey","getUserIdFromToken","refreshTokenIfNeeded","_performRefresh","Error","sessionId","refreshUrl","response","fetch","method","headers","signal","AbortSignal","timeout","ok","status","newToken","json","newDecoded","error","getAuthHeader","catch","tokenService"],"sourceRoot":"../../../../src","sources":["core/services/TokenService.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,SAAS,QAAQ,YAAY;;AAEtC;AACA;AACA;AACA;;AAeA;AACA;AACA;AACA,MAAMC,YAAY,CAAC;EAETC,UAAU,GAAe;IAC/BC,WAAW,EAAE,IAAI;IACjBC,YAAY,EAAE;EAChB,CAAC;EACOC,cAAc,GAAyB,IAAI;EAC3CC,OAAO,GAAkB,IAAI;EAE7BC,WAAWA,CAAA,EAAG,CAAC;EAEvB,OAAOC,WAAWA,CAAA,EAAiB;IACjC,IAAI,CAACP,YAAY,CAACQ,QAAQ,EAAE;MAC1BR,YAAY,CAACQ,QAAQ,GAAG,IAAIR,YAAY,CAAC,CAAC;IAC5C;IACA,OAAOA,YAAY,CAACQ,QAAQ;EAC9B;;EAEA;AACF;AACA;EACEC,UAAUA,CAACJ,OAAe,EAAQ;IAChC,IAAI,CAACA,OAAO,GAAGA,OAAO;EACxB;;EAEA;AACF;AACA;EACEK,cAAcA,CAAA,EAAkB;IAC9B,OAAO,IAAI,CAACT,UAAU,CAACC,WAAW;EACpC;;EAEA;AACF;AACA;EACES,eAAeA,CAAA,EAAkB;IAC/B,OAAO,IAAI,CAACV,UAAU,CAACE,YAAY;EACrC;;EAEA;AACF;AACA;EACES,SAASA,CAACV,WAAmB,EAAEC,YAAoB,GAAG,EAAE,EAAQ;IAC9D,IAAI,CAACF,UAAU,CAACC,WAAW,GAAGA,WAAW;IACzC,IAAI,CAACD,UAAU,CAACE,YAAY,GAAGA,YAAY,IAAI,IAAI,CAACF,UAAU,CAACE,YAAY;EAC7E;;EAEA;AACF;AACA;EACEU,WAAWA,CAAA,EAAS;IAClB,IAAI,CAACZ,UAAU,CAACC,WAAW,GAAG,IAAI;IAClC,IAAI,CAACD,UAAU,CAACE,YAAY,GAAG,IAAI;IACnC,IAAI,CAACC,cAAc,GAAG,IAAI;EAC5B;;EAEA;AACF;AACA;EACEU,cAAcA,CAAA,EAAY;IACxB,OAAO,CAAC,CAAC,IAAI,CAACb,UAAU,CAACC,WAAW;EACtC;;EAEA;AACF;AACA;EACEa,mBAAmBA,CAAA,EAAY;IAC7B,MAAMC,KAAK,GAAG,IAAI,CAACf,UAAU,CAACC,WAAW;IACzC,IAAI,CAACc,KAAK,EAAE,OAAO,KAAK;IAExB,IAAI;MACF,MAAMC,OAAO,GAAGlB,SAAS,CAAqBiB,KAAK,CAAC;MACpD,IAAI,CAACC,OAAO,CAACC,GAAG,EAAE,OAAO,KAAK;MAE9B,MAAMC,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;MACjD,OAAON,OAAO,CAACC,GAAG,GAAGC,WAAW,GAAG,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,MAAM;MACN,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;AACA;EACEK,qBAAqBA,CAAA,EAAkB;IACrC,MAAMR,KAAK,GAAG,IAAI,CAACf,UAAU,CAACC,WAAW;IACzC,IAAI,CAACc,KAAK,EAAE,OAAO,IAAI;IAEvB,IAAI;MACF,MAAMC,OAAO,GAAGlB,SAAS,CAAqBiB,KAAK,CAAC;MACpD,OAAOC,OAAO,CAACQ,SAAS,IAAI,IAAI;IAClC,CAAC,CAAC,MAAM;MACN,OAAO,IAAI;IACb;EACF;;EAEA;AACF;AACA;AACA;EACEC,kBAAkBA,CAAA,EAAkB;IAClC,OAAO,IAAI,CAACF,qBAAqB,CAAC,CAAC;EACrC;;EAEA;AACF;AACA;AACA;EACE,MAAMG,oBAAoBA,CAAA,EAAkB;IAC1C;IACA,IAAI,IAAI,CAACvB,cAAc,EAAE;MACvB,OAAO,IAAI,CAACA,cAAc;IAC5B;;IAEA;IACA,IAAI,CAAC,IAAI,CAACW,mBAAmB,CAAC,CAAC,EAAE;MAC/B;IACF;;IAEA;IACA,IAAI,CAACX,cAAc,GAAG,IAAI,CAACwB,eAAe,CAAC,CAAC;IAE5C,IAAI;MACF,MAAM,IAAI,CAACxB,cAAc;IAC3B,CAAC,SAAS;MACR,IAAI,CAACA,cAAc,GAAG,IAAI;IAC5B;EACF;;EAEA;AACF;AACA;EACE,MAAcwB,eAAeA,CAAA,EAAkB;IAC7C,MAAMZ,KAAK,GAAG,IAAI,CAACf,UAAU,CAACC,WAAW;IACzC,IAAI,CAACc,KAAK,EAAE;MACV,MAAM,IAAIa,KAAK,CAAC,4BAA4B,CAAC;IAC/C;IAEA,IAAI;MACF,MAAMZ,OAAO,GAAGlB,SAAS,CAAqBiB,KAAK,CAAC;MACpD,IAAI,CAACC,OAAO,CAACa,SAAS,EAAE;QACtB,MAAM,IAAID,KAAK,CAAC,yBAAyB,CAAC;MAC5C;MAEA,IAAI,CAAC,IAAI,CAACxB,OAAO,EAAE;QACjB,MAAM,IAAIwB,KAAK,CAAC,2CAA2C,CAAC;MAC9D;MAEA,MAAME,UAAU,GAAG,GAAG,IAAI,CAAC1B,OAAO,sBAAsBY,OAAO,CAACa,SAAS,EAAE;MAE3E,MAAME,QAAQ,GAAG,MAAMC,KAAK,CAACF,UAAU,EAAE;QACvCG,MAAM,EAAE,KAAK;QACbC,OAAO,EAAE;UAAE,QAAQ,EAAE;QAAmB,CAAC;QACzCC,MAAM,EAAEC,WAAW,CAACC,OAAO,CAAC,IAAI;MAClC,CAAC,CAAC;MAEF,IAAI,CAACN,QAAQ,CAACO,EAAE,EAAE;QAChB,MAAM,IAAIV,KAAK,CAAC,yBAAyBG,QAAQ,CAACQ,MAAM,EAAE,CAAC;MAC7D;MAEA,MAAM;QAAEtC,WAAW,EAAEuC;MAAS,CAAC,GAAG,MAAMT,QAAQ,CAACU,IAAI,CAAC,CAAC;MAEvD,IAAI,CAACD,QAAQ,EAAE;QACb,MAAM,IAAIZ,KAAK,CAAC,qCAAqC,CAAC;MACxD;;MAEA;MACA,MAAMc,UAAU,GAAG5C,SAAS,CAAqB0C,QAAQ,CAAC;MAC1D,IAAI,CAACE,UAAU,CAAClB,SAAS,EAAE;QACzB,MAAM,IAAII,KAAK,CAAC,uCAAuC,CAAC;MAC1D;MAEA,IAAI,CAACjB,SAAS,CAAC6B,QAAQ,CAAC;IAC1B,CAAC,CAAC,OAAOG,KAAK,EAAE;MACd;MACA,IAAI,CAAC/B,WAAW,CAAC,CAAC;MAClB,MAAM+B,KAAK;IACb;EACF;;EAEA;AACF;AACA;EACE,MAAMC,aAAaA,CAAA,EAA2B;IAC5C;IACA,MAAM,IAAI,CAAClB,oBAAoB,CAAC,CAAC,CAACmB,KAAK,CAAC,MAAM;MAC5C;IAAA,CACD,CAAC;IAEF,MAAM9B,KAAK,GAAG,IAAI,CAACf,UAAU,CAACC,WAAW;IACzC,OAAOc,KAAK,GAAG,UAAUA,KAAK,EAAE,GAAG,IAAI;EACzC;AACF;;AAEA;AACA,OAAO,MAAM+B,YAAY,GAAG/C,YAAY,CAACO,WAAW,CAAC,CAAC","ignoreList":[]}
|
|
@@ -4,15 +4,16 @@
|
|
|
4
4
|
* User Model
|
|
5
5
|
*
|
|
6
6
|
* IMPORTANT:
|
|
7
|
-
* - id:
|
|
8
|
-
* - publicKey:
|
|
7
|
+
* - id: Public key (ECDSA secp256k1 public key, 130 hex characters) - CANONICAL USER IDENTITY
|
|
8
|
+
* - publicKey: Same as id (kept for backward compatibility and explicit clarity)
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
* -
|
|
12
|
-
* -
|
|
13
|
-
* -
|
|
14
|
-
*
|
|
15
|
-
*
|
|
10
|
+
* publicKey is the canonical user identity across the ecosystem because it's:
|
|
11
|
+
* - Globally unique
|
|
12
|
+
* - Local-first (stored in Accounts app)
|
|
13
|
+
* - Avoids device-bound artifacts
|
|
14
|
+
*
|
|
15
|
+
* MongoDB _id remains internal to backend only and is not exposed in the User interface.
|
|
16
|
+
* Backend may use MongoDB ObjectId internally for database operations, but client always uses publicKey.
|
|
16
17
|
*/
|
|
17
18
|
|
|
18
19
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SECURITY_EVENT_SEVERITY_MAP"],"sourceRoot":"../../../src","sources":["models/interfaces.ts"],"mappings":";;AAuBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmMA;AACA;AACA;;AAmDA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAuGA;AACA;AACA;;AAqBA;AACA;AACA;;AAcA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA,OAAO,MAAMA,2BAA6E,GAAG;EAC3F,SAAS,EAAE,KAAK;EAChB,UAAU,EAAE,KAAK;EACjB,iBAAiB,EAAE,KAAK;EACxB,eAAe,EAAE,QAAQ;EACzB,cAAc,EAAE,QAAQ;EACxB,gBAAgB,EAAE,QAAQ;EAC1B,2BAA2B,EAAE,QAAQ;EACrC,kBAAkB,EAAE,MAAM;EAC1B,sBAAsB,EAAE,MAAM;EAC9B,gBAAgB,EAAE,MAAM;EACxB,qBAAqB,EAAE;AACzB,CAAC;;AAED;AACA;AACA;;AAeA;AACA;AACA;;AAkBA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["SECURITY_EVENT_SEVERITY_MAP"],"sourceRoot":"../../../src","sources":["models/interfaces.ts"],"mappings":";;AAuBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmMA;AACA;AACA;;AAmDA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAuGA;AACA;AACA;;AAqBA;AACA;AACA;;AAcA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA,OAAO,MAAMA,2BAA6E,GAAG;EAC3F,SAAS,EAAE,KAAK;EAChB,UAAU,EAAE,KAAK;EACjB,iBAAiB,EAAE,KAAK;EACxB,eAAe,EAAE,QAAQ;EACzB,cAAc,EAAE,QAAQ;EACxB,gBAAgB,EAAE,QAAQ;EAC1B,2BAA2B,EAAE,QAAQ;EACrC,kBAAkB,EAAE,MAAM;EAC1B,sBAAsB,EAAE,MAAM;EAC9B,gBAAgB,EAAE,MAAM;EACxB,qBAAqB,EAAE;AACzB,CAAC;;AAED;AACA;AACA;;AAeA;AACA;AACA;;AAkBA","ignoreList":[]}
|
|
@@ -467,6 +467,21 @@ export const OxyProvider = ({
|
|
|
467
467
|
}
|
|
468
468
|
setTokenReady(false);
|
|
469
469
|
try {
|
|
470
|
+
// CRITICAL: Get current local identity (publicKey) before restoring sessions
|
|
471
|
+
// Sessions must belong to the current local identity stored in Accounts app
|
|
472
|
+
let currentPublicKey = null;
|
|
473
|
+
try {
|
|
474
|
+
if (Platform.OS !== 'web') {
|
|
475
|
+
// Only check identity on native platforms (web doesn't have local identity)
|
|
476
|
+
// KeyManager is already imported at the top of the file
|
|
477
|
+
currentPublicKey = await KeyManager.getPublicKey();
|
|
478
|
+
}
|
|
479
|
+
} catch (identityError) {
|
|
480
|
+
if (__DEV__) {
|
|
481
|
+
logger('Failed to get current local identity during session restoration', identityError);
|
|
482
|
+
}
|
|
483
|
+
// Continue without identity check if it fails (e.g., on web platform)
|
|
484
|
+
}
|
|
470
485
|
const storedSessionIdsJson = await storage.getItem(storageKeys.sessionIds);
|
|
471
486
|
const storedSessionIds = storedSessionIdsJson ? JSON.parse(storedSessionIdsJson) : [];
|
|
472
487
|
const storedActiveSessionId = await storage.getItem(storageKeys.activeSessionId);
|
|
@@ -479,12 +494,26 @@ export const OxyProvider = ({
|
|
|
479
494
|
});
|
|
480
495
|
if (validation?.valid && validation.user) {
|
|
481
496
|
const now = new Date();
|
|
497
|
+
// user.id is now publicKey (canonical identity)
|
|
498
|
+
const sessionPublicKey = validation.user.publicKey || validation.user.id || '';
|
|
499
|
+
|
|
500
|
+
// IDENTITY BINDING: Only restore sessions that match current local identity
|
|
501
|
+
// If we have a current local identity, filter out sessions that don't match
|
|
502
|
+
if (currentPublicKey && sessionPublicKey !== currentPublicKey) {
|
|
503
|
+
if (__DEV__) {
|
|
504
|
+
logger(`Skipping session ${sessionId.substring(0, 8)}... - belongs to different identity (${sessionPublicKey.substring(0, 16)}... vs ${currentPublicKey.substring(0, 16)}...)`);
|
|
505
|
+
}
|
|
506
|
+
continue; // Skip this session - it belongs to a different identity
|
|
507
|
+
}
|
|
482
508
|
validSessions.push({
|
|
483
509
|
sessionId,
|
|
484
510
|
deviceId: '',
|
|
485
511
|
expiresAt: new Date(now.getTime() + 7 * 24 * 60 * 60 * 1000).toISOString(),
|
|
486
512
|
lastActive: now.toISOString(),
|
|
487
|
-
|
|
513
|
+
publicKey: sessionPublicKey,
|
|
514
|
+
// Canonical user identity
|
|
515
|
+
userId: validation.user.id?.toString(),
|
|
516
|
+
// Optional MongoDB ObjectId for backward compatibility
|
|
488
517
|
isCurrent: sessionId === storedActiveSessionId
|
|
489
518
|
});
|
|
490
519
|
}
|
|
@@ -506,6 +535,13 @@ export const OxyProvider = ({
|
|
|
506
535
|
updateSessions(validSessions, {
|
|
507
536
|
merge: false
|
|
508
537
|
});
|
|
538
|
+
} else if (currentPublicKey && storedSessionIds.length > 0) {
|
|
539
|
+
// All sessions were filtered out due to identity mismatch - clear stored sessions
|
|
540
|
+
if (__DEV__) {
|
|
541
|
+
logger('All stored sessions belong to different identity - clearing session storage');
|
|
542
|
+
}
|
|
543
|
+
await storage.removeItem(storageKeys.sessionIds);
|
|
544
|
+
await storage.removeItem(storageKeys.activeSessionId);
|
|
509
545
|
}
|
|
510
546
|
}
|
|
511
547
|
if (storedActiveSessionId) {
|
|
@@ -609,9 +645,9 @@ export const OxyProvider = ({
|
|
|
609
645
|
return isAuthenticatedFromStore || isAuthenticatedFromSessions;
|
|
610
646
|
}, [isAuthenticatedFromStore, isAuthenticatedFromSessions]);
|
|
611
647
|
|
|
612
|
-
// Get userId from JWT token
|
|
613
|
-
//
|
|
614
|
-
//
|
|
648
|
+
// Get userId from JWT token for socket room matching
|
|
649
|
+
// Note: JWT token may contain MongoDB ObjectId internally, but user.id is publicKey (canonical identity)
|
|
650
|
+
// Socket rooms may need internal mapping from publicKey to MongoDB ObjectId if backend requires it
|
|
615
651
|
const userId = oxyServices.getCurrentUserId() || user?.id;
|
|
616
652
|
|
|
617
653
|
// Use Zustand store for transfer state management
|