@oxyhq/services 5.15.8 → 5.16.0
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/OxyServices.js +0 -1
- package/lib/commonjs/core/OxyServices.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.auth.js +3 -6
- package/lib/commonjs/core/mixins/OxyServices.auth.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.devices.js +1 -1
- package/lib/commonjs/core/mixins/OxyServices.devices.js.map +1 -1
- package/lib/commonjs/core/mixins/index.js +11 -12
- package/lib/commonjs/core/mixins/index.js.map +1 -1
- package/lib/commonjs/crypto/signatureService.js +3 -2
- package/lib/commonjs/crypto/signatureService.js.map +1 -1
- package/lib/commonjs/i18n/locales/ar-SA.json +1 -9
- package/lib/commonjs/i18n/locales/ca-ES.json +1 -9
- package/lib/commonjs/i18n/locales/de-DE.json +1 -9
- package/lib/commonjs/i18n/locales/en-US.json +3 -21
- package/lib/commonjs/i18n/locales/es-ES.json +3 -21
- package/lib/commonjs/i18n/locales/fr-FR.json +1 -9
- package/lib/commonjs/i18n/locales/it-IT.json +1 -9
- package/lib/commonjs/i18n/locales/ja-JP.json +1 -9
- package/lib/commonjs/i18n/locales/ko-KR.json +1 -9
- package/lib/commonjs/i18n/locales/pt-PT.json +1 -9
- package/lib/commonjs/i18n/locales/zh-CN.json +1 -9
- package/lib/commonjs/ui/context/OxyContext.js +24 -4
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +217 -100
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +2 -319
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/OxyAuthScreen.js +178 -77
- package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +0 -1
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SessionManagementScreen.js +43 -29
- package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
- package/lib/commonjs/ui/stores/authStore.js +14 -1
- package/lib/commonjs/ui/stores/authStore.js.map +1 -1
- package/lib/module/core/OxyServices.js +0 -1
- package/lib/module/core/OxyServices.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.auth.js +3 -6
- package/lib/module/core/mixins/OxyServices.auth.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.devices.js +1 -1
- package/lib/module/core/mixins/OxyServices.devices.js.map +1 -1
- package/lib/module/core/mixins/index.js +1 -2
- package/lib/module/core/mixins/index.js.map +1 -1
- package/lib/module/crypto/signatureService.js +3 -2
- package/lib/module/crypto/signatureService.js.map +1 -1
- package/lib/module/i18n/locales/ar-SA.json +1 -9
- package/lib/module/i18n/locales/ca-ES.json +1 -9
- package/lib/module/i18n/locales/de-DE.json +1 -9
- package/lib/module/i18n/locales/en-US.json +3 -21
- package/lib/module/i18n/locales/es-ES.json +3 -21
- package/lib/module/i18n/locales/fr-FR.json +1 -9
- package/lib/module/i18n/locales/it-IT.json +1 -9
- package/lib/module/i18n/locales/ja-JP.json +1 -9
- package/lib/module/i18n/locales/ko-KR.json +1 -9
- package/lib/module/i18n/locales/pt-PT.json +1 -9
- package/lib/module/i18n/locales/zh-CN.json +1 -9
- package/lib/module/ui/context/OxyContext.js +24 -4
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +217 -100
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js +2 -319
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/OxyAuthScreen.js +179 -78
- package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/module/ui/screens/PrivacySettingsScreen.js +0 -1
- package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/SessionManagementScreen.js +44 -29
- package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
- package/lib/module/ui/stores/authStore.js +14 -1
- package/lib/module/ui/stores/authStore.js.map +1 -1
- package/lib/typescript/core/OxyServices.d.ts +0 -1
- package/lib/typescript/core/OxyServices.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.auth.d.ts +3 -4
- package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.devices.d.ts +1 -4
- package/lib/typescript/core/mixins/OxyServices.devices.d.ts.map +1 -1
- package/lib/typescript/core/mixins/index.d.ts +1 -64
- package/lib/typescript/core/mixins/index.d.ts.map +1 -1
- package/lib/typescript/crypto/signatureService.d.ts +2 -1
- package/lib/typescript/crypto/signatureService.d.ts.map +1 -1
- package/lib/typescript/models/interfaces.d.ts +1 -1
- package/lib/typescript/models/interfaces.d.ts.map +1 -1
- package/lib/typescript/types/bip39.d.ts +1 -0
- package/lib/typescript/types/buffer.d.ts +1 -0
- package/lib/typescript/types/color.d.ts +1 -0
- package/lib/typescript/types/elliptic.d.ts +1 -0
- package/lib/typescript/types/expo-crypto.d.ts +1 -0
- package/lib/typescript/types/expo-secure-store.d.ts +1 -0
- package/lib/typescript/ui/context/OxyContext.d.ts +11 -3
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +13 -5
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/OxyAuthScreen.d.ts +1 -0
- package/lib/typescript/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/SessionManagementScreen.d.ts.map +1 -1
- package/lib/typescript/ui/stores/authStore.d.ts +4 -0
- package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
- package/package.json +6 -5
- package/src/core/OxyServices.ts +0 -1
- package/src/core/mixins/OxyServices.auth.ts +3 -8
- package/src/core/mixins/OxyServices.devices.ts +1 -4
- package/src/core/mixins/index.ts +2 -5
- package/src/crypto/index.ts +1 -0
- package/src/crypto/keyManager.ts +1 -0
- package/src/crypto/polyfill.ts +1 -0
- package/src/crypto/recoveryPhrase.ts +1 -0
- package/src/crypto/signatureService.ts +4 -5
- package/src/i18n/locales/ar-SA.json +1 -9
- package/src/i18n/locales/ca-ES.json +1 -9
- package/src/i18n/locales/de-DE.json +1 -9
- package/src/i18n/locales/en-US.json +3 -21
- package/src/i18n/locales/es-ES.json +3 -21
- package/src/i18n/locales/fr-FR.json +1 -9
- package/src/i18n/locales/it-IT.json +1 -9
- package/src/i18n/locales/ja-JP.json +1 -9
- package/src/i18n/locales/ko-KR.json +1 -9
- package/src/i18n/locales/pt-PT.json +1 -9
- package/src/i18n/locales/zh-CN.json +1 -9
- package/src/models/interfaces.ts +1 -1
- package/src/types/bip39.d.ts +1 -0
- package/src/types/buffer.d.ts +1 -0
- package/src/types/color.d.ts +1 -0
- package/src/types/elliptic.d.ts +1 -0
- package/src/types/expo-crypto.d.ts +1 -0
- package/src/types/expo-secure-store.d.ts +1 -0
- package/src/ui/context/OxyContext.tsx +35 -3
- package/src/ui/context/hooks/useAuthOperations.ts +212 -98
- package/src/ui/screens/AccountSettingsScreen.tsx +1 -201
- package/src/ui/screens/OxyAuthScreen.tsx +193 -69
- package/src/ui/screens/PrivacySettingsScreen.tsx +0 -2
- package/src/ui/screens/SessionManagementScreen.tsx +43 -26
- package/src/ui/stores/authStore.ts +31 -2
- package/lib/commonjs/core/mixins/OxyServices.totp.js +0 -53
- package/lib/commonjs/core/mixins/OxyServices.totp.js.map +0 -1
- package/lib/commonjs/ui/components/profile/TwoFactorSetupModal.js +0 -467
- package/lib/commonjs/ui/components/profile/TwoFactorSetupModal.js.map +0 -1
- package/lib/module/core/mixins/OxyServices.totp.js +0 -49
- package/lib/module/core/mixins/OxyServices.totp.js.map +0 -1
- package/lib/module/ui/components/profile/TwoFactorSetupModal.js +0 -460
- package/lib/module/ui/components/profile/TwoFactorSetupModal.js.map +0 -1
- package/lib/typescript/core/mixins/OxyServices.totp.d.ts +0 -66
- package/lib/typescript/core/mixins/OxyServices.totp.d.ts.map +0 -1
- package/lib/typescript/ui/components/profile/TwoFactorSetupModal.d.ts +0 -11
- package/lib/typescript/ui/components/profile/TwoFactorSetupModal.d.ts.map +0 -1
- package/src/core/mixins/OxyServices.totp.ts +0 -36
- package/src/ui/components/profile/TwoFactorSetupModal.tsx +0 -442
|
@@ -31,45 +31,138 @@ export const useAuthOperations = ({
|
|
|
31
31
|
loginFailure,
|
|
32
32
|
logoutStore,
|
|
33
33
|
setAuthState,
|
|
34
|
+
setIdentitySynced,
|
|
35
|
+
setSyncing,
|
|
34
36
|
logger
|
|
35
37
|
}) => {
|
|
36
38
|
/**
|
|
37
|
-
*
|
|
39
|
+
* Internal function to perform challenge-response sign in
|
|
38
40
|
*/
|
|
39
|
-
const
|
|
41
|
+
const performSignIn = useCallback(async publicKey => {
|
|
42
|
+
const deviceFingerprintObj = DeviceManager.getDeviceFingerprint();
|
|
43
|
+
const deviceFingerprint = JSON.stringify(deviceFingerprintObj);
|
|
44
|
+
const deviceInfo = await DeviceManager.getDeviceInfo();
|
|
45
|
+
const deviceName = deviceInfo.deviceName || DeviceManager.getDefaultDeviceName();
|
|
46
|
+
|
|
47
|
+
// Request challenge
|
|
48
|
+
const {
|
|
49
|
+
challenge
|
|
50
|
+
} = await oxyServices.requestChallenge(publicKey);
|
|
51
|
+
|
|
52
|
+
// Note: Biometric authentication check should be handled by the app layer
|
|
53
|
+
// (e.g., accounts app) before calling signIn. The biometric preference is stored
|
|
54
|
+
// in local storage as 'oxy_biometric_enabled' and can be checked there.
|
|
55
|
+
|
|
56
|
+
// Sign the challenge
|
|
57
|
+
const {
|
|
58
|
+
challenge: signature,
|
|
59
|
+
timestamp
|
|
60
|
+
} = await SignatureService.signChallenge(challenge);
|
|
61
|
+
|
|
62
|
+
// Verify and create session
|
|
63
|
+
const sessionResponse = await oxyServices.verifyChallenge(publicKey, challenge, signature, timestamp, deviceName, deviceFingerprint);
|
|
64
|
+
|
|
65
|
+
// Get token for the session
|
|
66
|
+
await oxyServices.getTokenBySession(sessionResponse.sessionId);
|
|
67
|
+
|
|
68
|
+
// Get full user data
|
|
69
|
+
const fullUser = await oxyServices.getUserBySession(sessionResponse.sessionId);
|
|
70
|
+
await applyLanguagePreference(fullUser);
|
|
71
|
+
loginSuccess(fullUser);
|
|
72
|
+
|
|
73
|
+
// Fetch device sessions
|
|
74
|
+
let allDeviceSessions = [];
|
|
75
|
+
try {
|
|
76
|
+
allDeviceSessions = await fetchSessionsWithFallback(oxyServices, sessionResponse.sessionId, {
|
|
77
|
+
fallbackDeviceId: sessionResponse.deviceId,
|
|
78
|
+
fallbackUserId: fullUser.id,
|
|
79
|
+
logger
|
|
80
|
+
});
|
|
81
|
+
} catch (error) {
|
|
82
|
+
if (__DEV__) {
|
|
83
|
+
console.warn('Failed to fetch device sessions after login:', error);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Check for existing session for same user
|
|
88
|
+
const existingSession = allDeviceSessions.find(session => session.userId?.toString() === fullUser.id?.toString() && session.sessionId !== sessionResponse.sessionId);
|
|
89
|
+
if (existingSession) {
|
|
90
|
+
// Logout duplicate session
|
|
91
|
+
try {
|
|
92
|
+
await oxyServices.logoutSession(sessionResponse.sessionId, sessionResponse.sessionId);
|
|
93
|
+
} catch (logoutError) {
|
|
94
|
+
if (__DEV__) {
|
|
95
|
+
console.warn('Failed to logout duplicate session:', logoutError);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
await switchSession(existingSession.sessionId);
|
|
99
|
+
updateSessions(allDeviceSessions.filter(session => session.sessionId !== sessionResponse.sessionId), {
|
|
100
|
+
merge: false
|
|
101
|
+
});
|
|
102
|
+
onAuthStateChange?.(fullUser);
|
|
103
|
+
return fullUser;
|
|
104
|
+
}
|
|
105
|
+
setActiveSessionId(sessionResponse.sessionId);
|
|
106
|
+
await saveActiveSessionId(sessionResponse.sessionId);
|
|
107
|
+
updateSessions(allDeviceSessions, {
|
|
108
|
+
merge: true
|
|
109
|
+
});
|
|
110
|
+
onAuthStateChange?.(fullUser);
|
|
111
|
+
return fullUser;
|
|
112
|
+
}, [applyLanguagePreference, logger, loginSuccess, onAuthStateChange, oxyServices, saveActiveSessionId, setActiveSessionId, switchSession, updateSessions]);
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Create a new identity with recovery phrase (offline-first)
|
|
116
|
+
* Identity is purely cryptographic - no username or email required
|
|
117
|
+
*/
|
|
118
|
+
const createIdentity = useCallback(async () => {
|
|
40
119
|
if (!storage) throw new Error('Storage not initialized');
|
|
41
120
|
setAuthState({
|
|
42
121
|
isLoading: true,
|
|
43
122
|
error: null
|
|
44
123
|
});
|
|
45
124
|
try {
|
|
46
|
-
// Generate new identity with recovery phrase
|
|
125
|
+
// Generate new identity with recovery phrase (works offline)
|
|
47
126
|
const {
|
|
48
127
|
phrase,
|
|
49
128
|
words,
|
|
50
129
|
publicKey
|
|
51
130
|
} = await RecoveryPhraseService.generateIdentityWithRecovery();
|
|
52
131
|
|
|
53
|
-
//
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
timestamp
|
|
57
|
-
} = await SignatureService.createRegistrationSignature(username, email);
|
|
132
|
+
// Mark as not synced
|
|
133
|
+
await storage.setItem('oxy_identity_synced', 'false');
|
|
134
|
+
setIdentitySynced(false);
|
|
58
135
|
|
|
59
|
-
//
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
136
|
+
// Try to sync with server (will succeed if online)
|
|
137
|
+
try {
|
|
138
|
+
const {
|
|
139
|
+
signature,
|
|
140
|
+
timestamp
|
|
141
|
+
} = await SignatureService.createRegistrationSignature();
|
|
142
|
+
await oxyServices.register(publicKey, signature, timestamp);
|
|
63
143
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
144
|
+
// Mark as synced (Zustand store + storage)
|
|
145
|
+
await storage.setItem('oxy_identity_synced', 'true');
|
|
146
|
+
setIdentitySynced(true);
|
|
147
|
+
return {
|
|
148
|
+
recoveryPhrase: words,
|
|
149
|
+
synced: true
|
|
150
|
+
};
|
|
151
|
+
} catch (syncError) {
|
|
152
|
+
// Offline or server error - identity is created locally but not synced
|
|
153
|
+
if (__DEV__) {
|
|
154
|
+
console.log('[Auth] Identity created locally, will sync when online:', syncError);
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
recoveryPhrase: words,
|
|
158
|
+
synced: false
|
|
159
|
+
};
|
|
160
|
+
}
|
|
70
161
|
} catch (error) {
|
|
71
|
-
// Clean up identity if
|
|
162
|
+
// Clean up identity if generation failed
|
|
72
163
|
await KeyManager.deleteIdentity().catch(() => {});
|
|
164
|
+
await storage.removeItem('oxy_identity_synced').catch(() => {});
|
|
165
|
+
setIdentitySynced(true);
|
|
73
166
|
const message = handleAuthError(error, {
|
|
74
167
|
defaultMessage: 'Failed to create identity',
|
|
75
168
|
code: REGISTER_ERROR_CODE,
|
|
@@ -86,43 +179,65 @@ export const useAuthOperations = ({
|
|
|
86
179
|
isLoading: false
|
|
87
180
|
});
|
|
88
181
|
}
|
|
89
|
-
}, [oxyServices, storage, setAuthState, loginFailure, onError, logger]);
|
|
182
|
+
}, [oxyServices, storage, setAuthState, loginFailure, onError, logger, setIdentitySynced]);
|
|
90
183
|
|
|
91
184
|
/**
|
|
92
|
-
*
|
|
185
|
+
* Check if identity is synced with server (reads from storage for persistence)
|
|
93
186
|
*/
|
|
94
|
-
const
|
|
187
|
+
const isIdentitySyncedFn = useCallback(async () => {
|
|
188
|
+
if (!storage) return true;
|
|
189
|
+
const synced = await storage.getItem('oxy_identity_synced');
|
|
190
|
+
const isSynced = synced !== 'false';
|
|
191
|
+
setIdentitySynced(isSynced);
|
|
192
|
+
return isSynced;
|
|
193
|
+
}, [storage, setIdentitySynced]);
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Sync local identity with server (call when online)
|
|
197
|
+
*/
|
|
198
|
+
const syncIdentity = useCallback(async () => {
|
|
95
199
|
if (!storage) throw new Error('Storage not initialized');
|
|
96
200
|
setAuthState({
|
|
97
201
|
isLoading: true,
|
|
98
202
|
error: null
|
|
99
203
|
});
|
|
204
|
+
setSyncing(true);
|
|
100
205
|
try {
|
|
101
|
-
|
|
102
|
-
|
|
206
|
+
const publicKey = await KeyManager.getPublicKey();
|
|
207
|
+
if (!publicKey) {
|
|
208
|
+
throw new Error('No identity found on this device');
|
|
209
|
+
}
|
|
103
210
|
|
|
104
|
-
// Check if
|
|
211
|
+
// Check if already synced
|
|
212
|
+
const alreadySynced = await storage.getItem('oxy_identity_synced');
|
|
213
|
+
if (alreadySynced === 'true') {
|
|
214
|
+
// Already synced, just sign in
|
|
215
|
+
setIdentitySynced(true);
|
|
216
|
+
return await performSignIn(publicKey);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// Check if already registered on server
|
|
105
220
|
const {
|
|
106
221
|
registered
|
|
107
222
|
} = await oxyServices.checkPublicKeyRegistered(publicKey);
|
|
108
|
-
if (registered) {
|
|
109
|
-
//
|
|
110
|
-
return await performSignIn(publicKey);
|
|
111
|
-
} else {
|
|
112
|
-
// Need to register this identity
|
|
113
|
-
if (!username) {
|
|
114
|
-
throw new Error('Username is required for new registration');
|
|
115
|
-
}
|
|
223
|
+
if (!registered) {
|
|
224
|
+
// Register with server (identity is just the publicKey)
|
|
116
225
|
const {
|
|
117
226
|
signature,
|
|
118
227
|
timestamp
|
|
119
|
-
} = await SignatureService.createRegistrationSignature(
|
|
120
|
-
await oxyServices.register(publicKey,
|
|
121
|
-
return await performSignIn(publicKey);
|
|
228
|
+
} = await SignatureService.createRegistrationSignature();
|
|
229
|
+
await oxyServices.register(publicKey, signature, timestamp);
|
|
122
230
|
}
|
|
231
|
+
|
|
232
|
+
// Mark as synced (Zustand store + storage)
|
|
233
|
+
await storage.setItem('oxy_identity_synced', 'true');
|
|
234
|
+
setIdentitySynced(true);
|
|
235
|
+
|
|
236
|
+
// Sign in
|
|
237
|
+
return await performSignIn(publicKey);
|
|
123
238
|
} catch (error) {
|
|
124
239
|
const message = handleAuthError(error, {
|
|
125
|
-
defaultMessage: 'Failed to
|
|
240
|
+
defaultMessage: 'Failed to sync identity',
|
|
126
241
|
code: REGISTER_ERROR_CODE,
|
|
127
242
|
onError,
|
|
128
243
|
setAuthError: msg => setAuthState({
|
|
@@ -136,80 +251,80 @@ export const useAuthOperations = ({
|
|
|
136
251
|
setAuthState({
|
|
137
252
|
isLoading: false
|
|
138
253
|
});
|
|
254
|
+
setSyncing(false);
|
|
139
255
|
}
|
|
140
|
-
}, [oxyServices, storage, setAuthState, loginFailure, onError, logger]);
|
|
256
|
+
}, [oxyServices, storage, setAuthState, performSignIn, loginFailure, onError, logger, setSyncing, setIdentitySynced]);
|
|
141
257
|
|
|
142
258
|
/**
|
|
143
|
-
*
|
|
259
|
+
* Import identity from recovery phrase (offline-first)
|
|
144
260
|
*/
|
|
145
|
-
const
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
// Request challenge
|
|
152
|
-
const {
|
|
153
|
-
challenge
|
|
154
|
-
} = await oxyServices.requestChallenge(publicKey);
|
|
155
|
-
|
|
156
|
-
// Sign the challenge
|
|
157
|
-
const {
|
|
158
|
-
challenge: signature,
|
|
159
|
-
timestamp
|
|
160
|
-
} = await SignatureService.signChallenge(challenge);
|
|
161
|
-
|
|
162
|
-
// Verify and create session
|
|
163
|
-
const sessionResponse = await oxyServices.verifyChallenge(publicKey, challenge, signature, timestamp, deviceName, deviceFingerprint);
|
|
164
|
-
|
|
165
|
-
// Get token for the session
|
|
166
|
-
await oxyServices.getTokenBySession(sessionResponse.sessionId);
|
|
167
|
-
|
|
168
|
-
// Get full user data
|
|
169
|
-
const fullUser = await oxyServices.getUserBySession(sessionResponse.sessionId);
|
|
170
|
-
await applyLanguagePreference(fullUser);
|
|
171
|
-
loginSuccess(fullUser);
|
|
172
|
-
|
|
173
|
-
// Fetch device sessions
|
|
174
|
-
let allDeviceSessions = [];
|
|
261
|
+
const importIdentity = useCallback(async phrase => {
|
|
262
|
+
if (!storage) throw new Error('Storage not initialized');
|
|
263
|
+
setAuthState({
|
|
264
|
+
isLoading: true,
|
|
265
|
+
error: null
|
|
266
|
+
});
|
|
175
267
|
try {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
fallbackUserId: fullUser.id,
|
|
179
|
-
logger
|
|
180
|
-
});
|
|
181
|
-
} catch (error) {
|
|
182
|
-
if (__DEV__) {
|
|
183
|
-
console.warn('Failed to fetch device sessions after login:', error);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
268
|
+
// Restore identity from phrase (works offline)
|
|
269
|
+
const publicKey = await RecoveryPhraseService.restoreFromPhrase(phrase);
|
|
186
270
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
271
|
+
// Mark as not synced
|
|
272
|
+
await storage.setItem('oxy_identity_synced', 'false');
|
|
273
|
+
setIdentitySynced(false);
|
|
274
|
+
|
|
275
|
+
// Try to sync with server
|
|
191
276
|
try {
|
|
192
|
-
|
|
193
|
-
|
|
277
|
+
// Check if this identity is already registered
|
|
278
|
+
const {
|
|
279
|
+
registered
|
|
280
|
+
} = await oxyServices.checkPublicKeyRegistered(publicKey);
|
|
281
|
+
if (registered) {
|
|
282
|
+
// Identity exists, mark as synced
|
|
283
|
+
await storage.setItem('oxy_identity_synced', 'true');
|
|
284
|
+
setIdentitySynced(true);
|
|
285
|
+
return {
|
|
286
|
+
synced: true
|
|
287
|
+
};
|
|
288
|
+
} else {
|
|
289
|
+
// Need to register this identity (identity is just the publicKey)
|
|
290
|
+
const {
|
|
291
|
+
signature,
|
|
292
|
+
timestamp
|
|
293
|
+
} = await SignatureService.createRegistrationSignature();
|
|
294
|
+
await oxyServices.register(publicKey, signature, timestamp);
|
|
295
|
+
await storage.setItem('oxy_identity_synced', 'true');
|
|
296
|
+
setIdentitySynced(true);
|
|
297
|
+
return {
|
|
298
|
+
synced: true
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
} catch (syncError) {
|
|
302
|
+
// Offline - identity restored locally but not synced
|
|
194
303
|
if (__DEV__) {
|
|
195
|
-
console.
|
|
304
|
+
console.log('[Auth] Identity imported locally, will sync when online:', syncError);
|
|
196
305
|
}
|
|
306
|
+
return {
|
|
307
|
+
synced: false
|
|
308
|
+
};
|
|
197
309
|
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
310
|
+
} catch (error) {
|
|
311
|
+
const message = handleAuthError(error, {
|
|
312
|
+
defaultMessage: 'Failed to import identity',
|
|
313
|
+
code: REGISTER_ERROR_CODE,
|
|
314
|
+
onError,
|
|
315
|
+
setAuthError: msg => setAuthState({
|
|
316
|
+
error: msg
|
|
317
|
+
}),
|
|
318
|
+
logger
|
|
319
|
+
});
|
|
320
|
+
loginFailure(message);
|
|
321
|
+
throw error;
|
|
322
|
+
} finally {
|
|
323
|
+
setAuthState({
|
|
324
|
+
isLoading: false
|
|
201
325
|
});
|
|
202
|
-
onAuthStateChange?.(fullUser);
|
|
203
|
-
return fullUser;
|
|
204
326
|
}
|
|
205
|
-
|
|
206
|
-
await saveActiveSessionId(sessionResponse.sessionId);
|
|
207
|
-
updateSessions(allDeviceSessions, {
|
|
208
|
-
merge: true
|
|
209
|
-
});
|
|
210
|
-
onAuthStateChange?.(fullUser);
|
|
211
|
-
return fullUser;
|
|
212
|
-
}, [applyLanguagePreference, logger, loginSuccess, onAuthStateChange, oxyServices, saveActiveSessionId, setActiveSessionId, switchSession, updateSessions]);
|
|
327
|
+
}, [oxyServices, storage, setAuthState, loginFailure, onError, logger, setIdentitySynced]);
|
|
213
328
|
|
|
214
329
|
/**
|
|
215
330
|
* Sign in with existing identity on device
|
|
@@ -338,7 +453,9 @@ export const useAuthOperations = ({
|
|
|
338
453
|
logout,
|
|
339
454
|
logoutAll,
|
|
340
455
|
hasIdentity,
|
|
341
|
-
getPublicKey
|
|
456
|
+
getPublicKey,
|
|
457
|
+
isIdentitySynced: isIdentitySyncedFn,
|
|
458
|
+
syncIdentity
|
|
342
459
|
};
|
|
343
460
|
};
|
|
344
461
|
//# sourceMappingURL=useAuthOperations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","DeviceManager","fetchSessionsWithFallback","handleAuthError","isInvalidSessionError","KeyManager","SignatureService","RecoveryPhraseService","LOGIN_ERROR_CODE","REGISTER_ERROR_CODE","LOGOUT_ERROR_CODE","LOGOUT_ALL_ERROR_CODE","useAuthOperations","oxyServices","storage","sessions","activeSessionId","setActiveSessionId","updateSessions","saveActiveSessionId","clearSessionState","switchSession","applyLanguagePreference","onAuthStateChange","onError","loginSuccess","loginFailure","logoutStore","setAuthState","logger","createIdentity","username","email","Error","isLoading","error","phrase","words","publicKey","generateIdentityWithRecovery","signature","timestamp","createRegistrationSignature","user","register","fullUser","performSignIn","recoveryPhrase","deleteIdentity","catch","message","defaultMessage","code","setAuthError","msg","importIdentity","restoreFromPhrase","registered","checkPublicKeyRegistered","deviceFingerprintObj","getDeviceFingerprint","deviceFingerprint","JSON","stringify","deviceInfo","getDeviceInfo","deviceName","getDefaultDeviceName","challenge","requestChallenge","signChallenge","sessionResponse","verifyChallenge","getTokenBySession","sessionId","getUserBySession","allDeviceSessions","fallbackDeviceId","deviceId","fallbackUserId","id","__DEV__","console","warn","existingSession","find","session","userId","toString","logoutSession","logoutError","filter","merge","signIn","getPublicKey","logout","targetSessionId","sessionToLogout","filteredSessions","length","isInvalid","status","undefined","logoutAll","logoutAllSessions","hasIdentity"],"sourceRoot":"../../../../../src","sources":["ui/context/hooks/useAuthOperations.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","DeviceManager","fetchSessionsWithFallback","handleAuthError","isInvalidSessionError","KeyManager","SignatureService","RecoveryPhraseService","LOGIN_ERROR_CODE","REGISTER_ERROR_CODE","LOGOUT_ERROR_CODE","LOGOUT_ALL_ERROR_CODE","useAuthOperations","oxyServices","storage","sessions","activeSessionId","setActiveSessionId","updateSessions","saveActiveSessionId","clearSessionState","switchSession","applyLanguagePreference","onAuthStateChange","onError","loginSuccess","loginFailure","logoutStore","setAuthState","setIdentitySynced","setSyncing","logger","performSignIn","publicKey","deviceFingerprintObj","getDeviceFingerprint","deviceFingerprint","JSON","stringify","deviceInfo","getDeviceInfo","deviceName","getDefaultDeviceName","challenge","requestChallenge","signature","timestamp","signChallenge","sessionResponse","verifyChallenge","getTokenBySession","sessionId","fullUser","getUserBySession","allDeviceSessions","fallbackDeviceId","deviceId","fallbackUserId","id","error","__DEV__","console","warn","existingSession","find","session","userId","toString","logoutSession","logoutError","filter","merge","createIdentity","Error","isLoading","phrase","words","generateIdentityWithRecovery","setItem","createRegistrationSignature","register","recoveryPhrase","synced","syncError","log","deleteIdentity","catch","removeItem","message","defaultMessage","code","setAuthError","msg","isIdentitySyncedFn","getItem","isSynced","syncIdentity","getPublicKey","alreadySynced","registered","checkPublicKeyRegistered","importIdentity","restoreFromPhrase","signIn","logout","targetSessionId","sessionToLogout","filteredSessions","length","isInvalid","status","undefined","logoutAll","logoutAllSessions","hasIdentity","isIdentitySynced"],"sourceRoot":"../../../../../src","sources":["ui/context/hooks/useAuthOperations.ts"],"mappings":"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","ignoreList":[]}
|