@oxyhq/services 5.16.30 → 5.16.31

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.
Files changed (63) hide show
  1. package/lib/commonjs/core/services/SessionService.js +2 -1
  2. package/lib/commonjs/core/services/SessionService.js.map +1 -1
  3. package/lib/commonjs/core/services/TokenService.js +17 -9
  4. package/lib/commonjs/core/services/TokenService.js.map +1 -1
  5. package/lib/commonjs/models/interfaces.js +9 -8
  6. package/lib/commonjs/models/interfaces.js.map +1 -1
  7. package/lib/commonjs/ui/context/OxyContext.js +40 -4
  8. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  9. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +25 -14
  10. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
  11. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js +12 -4
  12. package/lib/commonjs/ui/hooks/queries/useServicesQueries.js.map +1 -1
  13. package/lib/commonjs/ui/hooks/useSessionManagement.js +8 -0
  14. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +1 -1
  15. package/lib/commonjs/ui/utils/sessionHelpers.js +26 -11
  16. package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -1
  17. package/lib/commonjs/utils/sessionUtils.js +8 -1
  18. package/lib/commonjs/utils/sessionUtils.js.map +1 -1
  19. package/lib/module/core/services/SessionService.js +2 -1
  20. package/lib/module/core/services/SessionService.js.map +1 -1
  21. package/lib/module/core/services/TokenService.js +17 -9
  22. package/lib/module/core/services/TokenService.js.map +1 -1
  23. package/lib/module/models/interfaces.js +9 -8
  24. package/lib/module/models/interfaces.js.map +1 -1
  25. package/lib/module/ui/context/OxyContext.js +40 -4
  26. package/lib/module/ui/context/OxyContext.js.map +1 -1
  27. package/lib/module/ui/context/hooks/useAuthOperations.js +25 -14
  28. package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
  29. package/lib/module/ui/hooks/queries/useServicesQueries.js +13 -5
  30. package/lib/module/ui/hooks/queries/useServicesQueries.js.map +1 -1
  31. package/lib/module/ui/hooks/useSessionManagement.js +8 -0
  32. package/lib/module/ui/hooks/useSessionManagement.js.map +1 -1
  33. package/lib/module/ui/utils/sessionHelpers.js +26 -11
  34. package/lib/module/ui/utils/sessionHelpers.js.map +1 -1
  35. package/lib/module/utils/sessionUtils.js +8 -1
  36. package/lib/module/utils/sessionUtils.js.map +1 -1
  37. package/lib/typescript/core/services/SessionService.d.ts +4 -2
  38. package/lib/typescript/core/services/SessionService.d.ts.map +1 -1
  39. package/lib/typescript/core/services/TokenService.d.ts +8 -3
  40. package/lib/typescript/core/services/TokenService.d.ts.map +1 -1
  41. package/lib/typescript/models/interfaces.d.ts +9 -8
  42. package/lib/typescript/models/interfaces.d.ts.map +1 -1
  43. package/lib/typescript/models/session.d.ts +4 -2
  44. package/lib/typescript/models/session.d.ts.map +1 -1
  45. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  46. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
  47. package/lib/typescript/ui/hooks/queries/useServicesQueries.d.ts.map +1 -1
  48. package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +1 -1
  49. package/lib/typescript/ui/utils/sessionHelpers.d.ts +6 -2
  50. package/lib/typescript/ui/utils/sessionHelpers.d.ts.map +1 -1
  51. package/lib/typescript/utils/sessionUtils.d.ts.map +1 -1
  52. package/package.json +1 -1
  53. package/src/core/services/SessionService.ts +4 -2
  54. package/src/core/services/TokenService.ts +18 -10
  55. package/src/models/interfaces.ts +11 -10
  56. package/src/models/session.ts +5 -3
  57. package/src/ui/context/OxyContext.tsx +56 -20
  58. package/src/ui/context/hooks/useAuthOperations.ts +23 -15
  59. package/src/ui/hooks/auth/index.ts +1 -0
  60. package/src/ui/hooks/queries/useServicesQueries.ts +8 -3
  61. package/src/ui/hooks/useSessionManagement.ts +8 -1
  62. package/src/ui/utils/sessionHelpers.ts +32 -15
  63. 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 (0, _sessionHelpers.mapSessionsToClient)(sessions, activeSessionId);
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
- userId: validation.user.id?.toString() ?? '',
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","mapSessionsToClient","enabled","staleTime","gcTime","exports","useSession","sessionId","detail","validation","validateSession","useHeaderValidation","valid","user","now","Date","deviceId","expiresAt","getTime","toISOString","lastActive","lastActivity","id","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":[]}
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":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AAGA,IAAAK,YAAA,GAAAL,OAAA;AA+BA,MAAMM,0BAA0B,GAAG,6BAA6B;AAChE,MAAMC,mBAAmB,GAAG,yBAAyB;;AAErD;AACA;AACA;AACA;AACA;AACO,MAAMC,oBAAoB,GAAGA,CAAC;EACnCC,WAAW;EACXC,OAAO;EACPC,gBAAgB;EAChBC,YAAY;EACZC,WAAW;EACXC,uBAAuB;EACvBC,iBAAiB;EACjBC,OAAO;EACPC,YAAY;EACZC,MAAM;EACNC,aAAa;EACbC;AAC2B,CAAC,KAAiC;EAC7D,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAAkB,EAAE,CAAC;EAC7D,MAAM,CAACC,eAAe,EAAEC,kBAAkB,CAAC,GAAG,IAAAF,eAAQ,EAAgB,IAAI,CAAC;EAE3E,MAAMG,kBAAkB,GAAG,IAAAC,aAAM,EAAuB,IAAI,CAAC;EAC7D,MAAMC,kBAAkB,GAAG,IAAAD,aAAM,EAAc,IAAIE,GAAG,CAAC,CAAC,CAAC;EACzD,MAAMC,cAAc,GAAG,IAAAH,aAAM,EAAS,CAAC,CAAC;EAExC,MAAMI,WAAW,GAAG,IAAAC,cAAO,EAAC,MAAM,IAAAC,8BAAc,EAACtB,gBAAgB,CAAC,EAAE,CAACA,gBAAgB,CAAC,CAAC;EAEvF,MAAMuB,cAAc,GAAG,IAAAC,kBAAW,EAChC,MAAOC,UAAoB,IAAoB;IAC7C,IAAI,CAAC1B,OAAO,EAAE;IACd,IAAI;MACF,MAAM2B,SAAS,GAAGC,KAAK,CAACC,IAAI,CAAC,IAAIV,GAAG,CAACO,UAAU,CAAC,CAAC;MACjD,MAAM1B,OAAO,CAAC8B,OAAO,CAACT,WAAW,CAACK,UAAU,EAAEK,IAAI,CAACC,SAAS,CAACL,SAAS,CAAC,CAAC;IAC1E,CAAC,CAAC,OAAOM,KAAK,EAAE;MACd,IAAIzB,MAAM,EAAE;QACVA,MAAM,CAACZ,0BAA0B,EAAEqC,KAAK,CAAC;MAC3C,CAAC,MAAM,IAAIC,OAAO,EAAE;QAClBC,OAAO,CAACC,IAAI,CAAC,6BAA6B,EAAEH,KAAK,CAAC;MACpD;IACF;EACF,CAAC,EACD,CAACzB,MAAM,EAAER,OAAO,EAAEqB,WAAW,CAACK,UAAU,CAC1C,CAAC;EAED,MAAMW,cAAc,GAAG,IAAAZ,kBAAW,EAChC,CAACa,QAAyB,EAAEC,OAA4B,GAAG,CAAC,CAAC,KAAW;IACtE3B,WAAW,CAAE4B,YAAY,IAAK;MAC5B,MAAMC,SAAS,GAAGF,OAAO,CAACG,KAAK,GAC3B,IAAAC,2BAAa,EAACH,YAAY,EAAEF,QAAQ,EAAExB,eAAe,EAAE,KAAK,CAAC,GAC7D,IAAA8B,sCAAwB,EAACN,QAAQ,EAAExB,eAAe,EAAE,KAAK,CAAC;MAE9D,IAAId,OAAO,EAAE;QACX,KAAKwB,cAAc,CAACiB,SAAS,CAACI,GAAG,CAAEC,OAAO,IAAKA,OAAO,CAACC,SAAS,CAAC,CAAC;MACpE;MAEA,IAAI,IAAAC,iCAAmB,EAACR,YAAY,EAAEC,SAAS,CAAC,EAAE;QAChD,OAAOD,YAAY;MACrB;MACA,OAAOC,SAAS;IAClB,CAAC,CAAC;EACJ,CAAC,EACD,CAAC3B,eAAe,EAAEU,cAAc,EAAExB,OAAO,CAC3C,CAAC;EAED,MAAMiD,mBAAmB,GAAG,IAAAxB,kBAAW,EACrC,MAAOsB,SAAiB,IAAoB;IAC1C,IAAI,CAAC/C,OAAO,EAAE;IACd,IAAI;MACF,MAAMA,OAAO,CAAC8B,OAAO,CAACT,WAAW,CAACP,eAAe,EAAEiC,SAAS,CAAC;IAC/D,CAAC,CAAC,OAAOd,KAAK,EAAE;MACd,IAAAiB,8BAAe,EAACjB,KAAK,EAAE;QACrBkB,cAAc,EAAEvD,0BAA0B;QAC1CwD,IAAI,EAAE,2BAA2B;QACjC9C,OAAO;QACPC,YAAY;QACZC;MACF,CAAC,CAAC;IACJ;EACF,CAAC,EACD,CAACA,MAAM,EAAEF,OAAO,EAAEC,YAAY,EAAEP,OAAO,EAAEqB,WAAW,CAACP,eAAe,CACtE,CAAC;EAED,MAAMuC,qBAAqB,GAAG,IAAA5B,kBAAW,EAAC,YAA2B;IACnE,IAAI,CAACzB,OAAO,EAAE;IACd,IAAI;MACF,MAAMA,OAAO,CAACsD,UAAU,CAACjC,WAAW,CAACP,eAAe,CAAC;IACvD,CAAC,CAAC,OAAOmB,KAAK,EAAE;MACd,IAAAiB,8BAAe,EAACjB,KAAK,EAAE;QACrBkB,cAAc,EAAEvD,0BAA0B;QAC1CwD,IAAI,EAAE,2BAA2B;QACjC9C,OAAO;QACPC,YAAY;QACZC;MACF,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACA,MAAM,EAAEF,OAAO,EAAEC,YAAY,EAAEP,OAAO,EAAEqB,WAAW,CAACP,eAAe,CAAC,CAAC;EAEzE,MAAMyC,mBAAmB,GAAG,IAAA9B,kBAAW,EAAC,YAA2B;IACjE,IAAI,CAACzB,OAAO,EAAE;IACd,IAAI;MACF,MAAMA,OAAO,CAACsD,UAAU,CAACjC,WAAW,CAACP,eAAe,CAAC;MACrD,MAAMd,OAAO,CAACsD,UAAU,CAACjC,WAAW,CAACK,UAAU,CAAC;MAChD;MACA,MAAM1B,OAAO,CAACsD,UAAU,CAAC,qBAAqB,CAAC,CAACE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,OAAOvB,KAAK,EAAE;MACd,IAAAiB,8BAAe,EAACjB,KAAK,EAAE;QACrBkB,cAAc,EAAEtD,mBAAmB;QACnCuD,IAAI,EAAE,eAAe;QACrB9C,OAAO;QACPC,YAAY;QACZC;MACF,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACA,MAAM,EAAEF,OAAO,EAAEC,YAAY,EAAEP,OAAO,EAAEqB,WAAW,CAACP,eAAe,EAAEO,WAAW,CAACK,UAAU,CAAC,CAAC;EAEjG,MAAM+B,iBAAiB,GAAG,IAAAhC,kBAAW,EAAC,YAA2B;IAC/Db,WAAW,CAAC,EAAE,CAAC;IACfG,kBAAkB,CAAC,IAAI,CAAC;IACxBZ,WAAW,CAAC,CAAC;;IAEb;IACA,IAAIO,WAAW,EAAE;MACfA,WAAW,CAACgD,KAAK,CAAC,CAAC;IACrB;;IAEA;IACA,IAAI1D,OAAO,EAAE;MACX,IAAI;QACF,MAAM,IAAA2D,4BAAe,EAAC3D,OAAO,CAAC;MAChC,CAAC,CAAC,OAAOiC,KAAK,EAAE;QACd,IAAIzB,MAAM,EAAE;UACVA,MAAM,CAAC,uCAAuC,EAAEyB,KAAK,CAAC;QACxD;MACF;IACF;IAEA,MAAMsB,mBAAmB,CAAC,CAAC;IAC3BlD,iBAAiB,GAAG,IAAI,CAAC;EAC3B,CAAC,EAAE,CAACkD,mBAAmB,EAAEpD,WAAW,EAAEE,iBAAiB,EAAEK,WAAW,EAAEV,OAAO,EAAEQ,MAAM,CAAC,CAAC;EAEvF,MAAMoD,eAAe,GAAG,IAAAnC,kBAAW,EACjC,OAAOsB,SAAiB,EAAEc,IAAU,KAAoB;IACtD,MAAM9D,WAAW,CAAC+D,iBAAiB,CAACf,SAAS,CAAC;IAC9CtC,aAAa,GAAG,IAAI,CAAC;IACrBM,kBAAkB,CAACgC,SAAS,CAAC;IAC7B7C,YAAY,CAAC2D,IAAI,CAAC;IAClB,MAAMZ,mBAAmB,CAACF,SAAS,CAAC;IACpC,MAAM3C,uBAAuB,CAACyD,IAAI,CAAC;IACnCxD,iBAAiB,GAAGwD,IAAI,CAAC;EAC3B,CAAC,EACD,CACEzD,uBAAuB,EACvBF,YAAY,EACZG,iBAAiB,EACjBN,WAAW,EACXkD,mBAAmB,EACnBxC,aAAa,CAEjB,CAAC;EAED,MAAMsD,mBAAmB,GAAG,IAAAtC,kBAAW,EAAEsB,SAAiB,IAAK;IAC7D7B,kBAAkB,CAAC8C,OAAO,CAACC,GAAG,CAAClB,SAAS,CAAC;IACzCmB,UAAU,CAAC,MAAM;MACfhD,kBAAkB,CAAC8C,OAAO,CAACG,MAAM,CAACpB,SAAS,CAAC;IAC9C,CAAC,EAAE,IAAI,CAAC;EACV,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMqB,sBAAsB,GAAG,IAAA3C,kBAAW,EACxC,MAAOC,UAAoB,IAA2B;IACpD,IAAI,CAACA,UAAU,CAAC2C,MAAM,EAAE;MACtB,OAAO,IAAI;IACb;IAEA,MAAMC,iBAAiB,GAAG,MAAM,IAAAC,oCAAoB,EAACxE,WAAW,EAAE2B,UAAU,EAAE;MAC5E8C,cAAc,EAAE;IAClB,CAAC,CAAC;IAEF,MAAMC,YAAY,GAAGH,iBAAiB,CAACI,IAAI,CAAEC,MAAM,IAAKA,MAAM,CAACC,KAAK,CAAC;IACrE,IAAI,CAACH,YAAY,EAAE;MACjB,OAAO,IAAI;IACb;IAEA,MAAMI,UAAU,GAAG,MAAM9E,WAAW,CAAC+E,eAAe,CAACL,YAAY,CAAC1B,SAAS,EAAE;MAC3EgC,mBAAmB,EAAE;IACvB,CAAC,CAAC;IAEF,IAAI,CAACF,UAAU,EAAED,KAAK,IAAI,CAACC,UAAU,CAAChB,IAAI,EAAE;MAC1C,OAAO,IAAI;IACb;IAEA,MAAMA,IAAI,GAAGgB,UAAU,CAAChB,IAAY;IACpC,MAAMD,eAAe,CAACa,YAAY,CAAC1B,SAAS,EAAEc,IAAI,CAAC;IACnD,OAAOA,IAAI;EACb,CAAC,EACD,CAACD,eAAe,EAAE7D,WAAW,CAC/B,CAAC;EAED,MAAMiF,aAAa,GAAG,IAAAvD,kBAAW,EAC/B,MAAOsB,SAAiB,IAAoB;IAC1C,IAAI;MACF,MAAM8B,UAAU,GAAG,MAAM9E,WAAW,CAAC+E,eAAe,CAAC/B,SAAS,EAAE;QAAEgC,mBAAmB,EAAE;MAAK,CAAC,CAAC;MAC9F,IAAI,CAACF,UAAU,EAAED,KAAK,EAAE;QACtB,MAAM,IAAIK,KAAK,CAAC,+BAA+B,CAAC;MAClD;MAEA,IAAI,CAACJ,UAAU,CAAChB,IAAI,EAAE;QACpB,MAAM,IAAIoB,KAAK,CAAC,iDAAiD,CAAC;MACpE;MAEA,MAAMpB,IAAI,GAAGgB,UAAU,CAAChB,IAAY;MACpC,MAAMD,eAAe,CAACb,SAAS,EAAEc,IAAI,CAAC;MAEtC,IAAI;QACF,MAAMqB,cAAc,GAAG,MAAM,IAAAC,yCAAyB,EAACpF,WAAW,EAAEgD,SAAS,EAAE;UAC7EqC,cAAc,EAAEvB,IAAI,CAACwB,EAAE;UACvB7E;QACF,CAAC,CAAC;QACF6B,cAAc,CAAC6C,cAAc,EAAE;UAAExC,KAAK,EAAE;QAAK,CAAC,CAAC;MACjD,CAAC,CAAC,OAAOT,KAAK,EAAE;QACd,IAAIC,OAAO,EAAE;UACXC,OAAO,CAACC,IAAI,CAAC,8CAA8C,EAAEH,KAAK,CAAC;QACrE;MACF;MAEA,OAAO4B,IAAI;IACb,CAAC,CAAC,OAAO5B,KAAK,EAAE;MACd,MAAMqD,cAAc,GAAG,IAAAC,oCAAqB,EAACtD,KAAK,CAAC;MAEnD,IAAIqD,cAAc,EAAE;QAClBjD,cAAc,CAAC1B,QAAQ,CAAC6E,MAAM,CAAE1C,OAAO,IAAKA,OAAO,CAACC,SAAS,KAAKA,SAAS,CAAC,EAAE;UAC5EL,KAAK,EAAE;QACT,CAAC,CAAC;QACF,IAAIK,SAAS,KAAKjC,eAAe,EAAE;UACjC,MAAM2E,eAAe,GAAG9E,QAAQ,CAC7B6E,MAAM,CACJ1C,OAAO,IACNA,OAAO,CAACC,SAAS,KAAKA,SAAS,IAAI,CAAC7B,kBAAkB,CAAC8C,OAAO,CAAC0B,GAAG,CAAC5C,OAAO,CAACC,SAAS,CACxF,CAAC,CACAF,GAAG,CAAEC,OAAO,IAAKA,OAAO,CAACC,SAAS,CAAC;UAEtC,MAAM4C,eAAe,GAAG,MAAMvB,sBAAsB,CAACqB,eAAe,CAAC;UACrE,IAAIE,eAAe,EAAE;YACnB,OAAOA,eAAe;UACxB;QACF;MACF;MAEA,IAAAzC,8BAAe,EAACjB,KAAK,EAAE;QACrBkB,cAAc,EAAE,0BAA0B;QAC1CC,IAAI,EAAEkC,cAAc,GAAG,iBAAiB,GAAG,sBAAsB;QACjEhF,OAAO;QACPC,YAAY;QACZC;MACF,CAAC,CAAC;MACF,MAAMyB,KAAK,YAAYgD,KAAK,GAAGhD,KAAK,GAAG,IAAIgD,KAAK,CAAC,0BAA0B,CAAC;IAC9E;EACF,CAAC,EACD,CACErB,eAAe,EACf9C,eAAe,EACfsD,sBAAsB,EACtB5D,MAAM,EACNN,YAAY,EACZI,OAAO,EACPP,WAAW,EACXY,QAAQ,EACRJ,YAAY,EACZ8B,cAAc,CAElB,CAAC;EAED,MAAMuD,eAAe,GAAG,IAAAnE,kBAAW,EACjC,MAAOoE,YAAqB,IAAoB;IAC9C,IAAI,CAAC/E,eAAe,EAAE;IAEtB,IAAIE,kBAAkB,CAACgD,OAAO,EAAE;MAC9B,MAAMhD,kBAAkB,CAACgD,OAAO;MAChC;IACF;IAEA,MAAM8B,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;IACtB,IAAIA,GAAG,GAAG1E,cAAc,CAAC4C,OAAO,GAAG,GAAG,EAAE;MACtC;IACF;IACA5C,cAAc,CAAC4C,OAAO,GAAG8B,GAAG;IAE5B,MAAME,cAAc,GAAG,CAAC,YAAY;MAClC,IAAI;QACF,MAAMd,cAAc,GAAG,MAAM,IAAAC,yCAAyB,EAACpF,WAAW,EAAEe,eAAe,EAAE;UACnFsE,cAAc,EAAES,YAAY;UAC5BrF;QACF,CAAC,CAAC;QACF6B,cAAc,CAAC6C,cAAc,EAAE;UAAExC,KAAK,EAAE;QAAK,CAAC,CAAC;MACjD,CAAC,CAAC,OAAOT,KAAK,EAAE;QACd,IAAI,IAAAsD,oCAAqB,EAACtD,KAAK,CAAC,EAAE;UAChC,MAAMgE,aAAa,GAAGtF,QAAQ,CAC3B6E,MAAM,CACJ1C,OAAO,IACNA,OAAO,CAACC,SAAS,KAAKjC,eAAe,IACrC,CAACI,kBAAkB,CAAC8C,OAAO,CAAC0B,GAAG,CAAC5C,OAAO,CAACC,SAAS,CACrD,CAAC,CACAF,GAAG,CAAEC,OAAO,IAAKA,OAAO,CAACC,SAAS,CAAC;UAEtC,MAAM4C,eAAe,GAAG,MAAMvB,sBAAsB,CAAC6B,aAAa,CAAC;UACnE,IAAI,CAACN,eAAe,EAAE;YACpB,MAAMlC,iBAAiB,CAAC,CAAC;UAC3B;UACA;QACF;QAEA,IAAAP,8BAAe,EAACjB,KAAK,EAAE;UACrBkB,cAAc,EAAE,4BAA4B;UAC5CC,IAAI,EAAE,uBAAuB;UAC7B9C,OAAO;UACPC,YAAY;UACZC;QACF,CAAC,CAAC;MACJ,CAAC,SAAS;QACRQ,kBAAkB,CAACgD,OAAO,GAAG,IAAI;QACjC5C,cAAc,CAAC4C,OAAO,GAAG+B,IAAI,CAACD,GAAG,CAAC,CAAC;MACrC;IACF,CAAC,EAAE,CAAC;IAEJ9E,kBAAkB,CAACgD,OAAO,GAAGgC,cAAc;IAC3C,MAAMA,cAAc;EACtB,CAAC,EACD,CACElF,eAAe,EACf2C,iBAAiB,EACjBW,sBAAsB,EACtB5D,MAAM,EACNF,OAAO,EACPP,WAAW,EACXY,QAAQ,EACRJ,YAAY,EACZ8B,cAAc,CAElB,CAAC;EAED,MAAM6D,iBAAiB,GAAGC,OAAO,CAACnF,kBAAkB,CAACgD,OAAO,CAAC;EAE7D,OAAO;IACLrD,QAAQ;IACRG,eAAe;IACfC,kBAAkB;IAClBsB,cAAc;IACd2C,aAAa;IACbY,eAAe;IACfnC,iBAAiB;IACjBR,mBAAmB;IACnBc,mBAAmB;IACnB1C,WAAW;IACX6E;EACF,CAAC;AACH,CAAC;AAACE,OAAA,CAAAtG,oBAAA,GAAAA,oBAAA","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
- sessionId: session.sessionId,
18
- deviceId: session.deviceId || fallbackDeviceId || '',
19
- expiresAt: session.expiresAt || new Date(now.getTime() + 7 * 24 * 60 * 60 * 1000).toISOString(),
20
- lastActive: session.lastActive || now.toISOString(),
21
- userId: session.user?.id || session.userId || (session.user?._id ? session.user._id.toString() : undefined) || fallbackUserId || '',
22
- isCurrent: Boolean(session.isCurrent)
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","sessionId","deviceId","expiresAt","getTime","toISOString","lastActive","userId","user","id","_id","toString","undefined","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":[]}
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
- userId: session.userId || ''
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":"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","ignoreList":[]}
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
- * - userId is always MongoDB ObjectId, never publicKey
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":"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","ignoreList":[]}
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
- * - userId is always MongoDB ObjectId, never publicKey
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
- * userId is always MongoDB ObjectId (24 hex characters), never publicKey
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 userId from current access token
104
- * Returns MongoDB ObjectId (never publicKey)
103
+ * Get publicKey from current access token
104
+ * Returns the user's public key (canonical user identity)
105
105
  */
106
- getUserIdFromToken() {
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.userId || null;
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 correct userId format (ObjectId)
183
+ // Validate new token has publicKey (canonical user identity)
176
184
  const newDecoded = jwtDecode(newToken);
177
- if (newDecoded.userId && !/^[0-9a-fA-F]{24}$/.test(newDecoded.userId)) {
178
- throw new Error(`Invalid userId format in refreshed token: ${newDecoded.userId.substring(0, 20)}...`);
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","getUserIdFromToken","userId","refreshTokenIfNeeded","_performRefresh","Error","sessionId","refreshUrl","response","fetch","method","headers","signal","AbortSignal","timeout","ok","status","newToken","json","newDecoded","test","substring","error","getAuthHeader","catch","tokenService"],"sourceRoot":"../../../../src","sources":["core/services/TokenService.ts"],"mappings":"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","ignoreList":[]}
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":"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","ignoreList":[]}
@@ -4,15 +4,16 @@
4
4
  * User Model
5
5
  *
6
6
  * IMPORTANT:
7
- * - id: MongoDB ObjectId (24 hex characters) - PRIMARY IDENTIFIER for all internal operations
8
- * - publicKey: Cryptographic public key (130 hex characters) - LOOKUP KEY for authentication and identity operations
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
- * Never use publicKey as an ID. Always use id (ObjectId) for:
11
- * - Database queries
12
- * - Session userId
13
- * - Token userId
14
- * - Socket room names
15
- * - API route parameters (unless explicitly doing publicKey lookup)
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
- userId: validation.user.id?.toString() ?? '',
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 (MongoDB ObjectId) for socket room matching
613
- // user.id is set to publicKey for compatibility, but socket rooms use MongoDB ObjectId
614
- // The JWT token's userId field contains the MongoDB ObjectId
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