@oxyhq/services 5.15.8 → 5.15.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/ui/screens/OxyAuthScreen.js +168 -76
- package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/module/ui/screens/OxyAuthScreen.js +169 -77
- package/lib/module/ui/screens/OxyAuthScreen.js.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/package.json +1 -1
- package/src/ui/screens/OxyAuthScreen.tsx +184 -68
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
+
var _socket = _interopRequireDefault(require("socket.io-client"));
|
|
9
10
|
var _styles = require("../styles");
|
|
10
11
|
var _OxyContext = require("../context/OxyContext");
|
|
11
12
|
var _reactNativeQrcodeSvg = _interopRequireDefault(require("react-native-qrcode-svg"));
|
|
@@ -20,6 +21,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
20
21
|
* 1. Scan QR code with Oxy Accounts app
|
|
21
22
|
* 2. Open Oxy Accounts app directly (via deep link)
|
|
22
23
|
*
|
|
24
|
+
* Uses WebSocket for real-time authorization updates (with polling fallback).
|
|
23
25
|
* The Oxy Accounts app is where users manage their cryptographic identity.
|
|
24
26
|
* This screen should NOT be used within the Accounts app itself.
|
|
25
27
|
*/
|
|
@@ -30,6 +32,9 @@ const OXY_ACCOUNTS_WEB_URL = 'https://accounts.oxy.so';
|
|
|
30
32
|
|
|
31
33
|
// Auth session expiration (5 minutes)
|
|
32
34
|
const AUTH_SESSION_EXPIRY_MS = 5 * 60 * 1000;
|
|
35
|
+
|
|
36
|
+
// Polling interval (fallback if socket fails)
|
|
37
|
+
const POLLING_INTERVAL_MS = 3000;
|
|
33
38
|
const OxyAuthScreen = ({
|
|
34
39
|
navigate,
|
|
35
40
|
goBack,
|
|
@@ -45,20 +50,139 @@ const OxyAuthScreen = ({
|
|
|
45
50
|
const [authSession, setAuthSession] = (0, _react.useState)(null);
|
|
46
51
|
const [isLoading, setIsLoading] = (0, _react.useState)(true);
|
|
47
52
|
const [error, setError] = (0, _react.useState)(null);
|
|
48
|
-
const [
|
|
53
|
+
const [isWaiting, setIsWaiting] = (0, _react.useState)(false);
|
|
54
|
+
const [connectionType, setConnectionType] = (0, _react.useState)('socket');
|
|
55
|
+
const socketRef = (0, _react.useRef)(null);
|
|
49
56
|
const pollingIntervalRef = (0, _react.useRef)(null);
|
|
57
|
+
const isProcessingRef = (0, _react.useRef)(false);
|
|
58
|
+
|
|
59
|
+
// Handle successful authorization
|
|
60
|
+
const handleAuthSuccess = (0, _react.useCallback)(async sessionId => {
|
|
61
|
+
if (isProcessingRef.current) return;
|
|
62
|
+
isProcessingRef.current = true;
|
|
63
|
+
try {
|
|
64
|
+
// Get token and user data
|
|
65
|
+
await oxyServices.getTokenBySession(sessionId);
|
|
66
|
+
const user = await oxyServices.getUserBySession(sessionId);
|
|
67
|
+
if (onAuthenticated) {
|
|
68
|
+
onAuthenticated(user);
|
|
69
|
+
}
|
|
70
|
+
} catch (err) {
|
|
71
|
+
if (__DEV__) {
|
|
72
|
+
console.error('Error completing auth:', err);
|
|
73
|
+
}
|
|
74
|
+
setError('Authorization successful but failed to complete sign in. Please try again.');
|
|
75
|
+
isProcessingRef.current = false;
|
|
76
|
+
}
|
|
77
|
+
}, [oxyServices, onAuthenticated]);
|
|
78
|
+
|
|
79
|
+
// Connect to socket for real-time updates
|
|
80
|
+
const connectSocket = (0, _react.useCallback)(sessionToken => {
|
|
81
|
+
const baseURL = oxyServices.getBaseURL();
|
|
82
|
+
|
|
83
|
+
// Connect to the auth-session namespace (no authentication required)
|
|
84
|
+
const socket = (0, _socket.default)(`${baseURL}/auth-session`, {
|
|
85
|
+
transports: ['websocket', 'polling'],
|
|
86
|
+
reconnection: true,
|
|
87
|
+
reconnectionAttempts: 3,
|
|
88
|
+
reconnectionDelay: 1000
|
|
89
|
+
});
|
|
90
|
+
socketRef.current = socket;
|
|
91
|
+
socket.on('connect', () => {
|
|
92
|
+
if (__DEV__) {
|
|
93
|
+
console.log('Auth socket connected');
|
|
94
|
+
}
|
|
95
|
+
// Join the room for this session token
|
|
96
|
+
socket.emit('join', sessionToken);
|
|
97
|
+
setConnectionType('socket');
|
|
98
|
+
});
|
|
99
|
+
socket.on('joined', () => {
|
|
100
|
+
if (__DEV__) {
|
|
101
|
+
console.log('Joined auth session room');
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
socket.on('auth_update', payload => {
|
|
105
|
+
if (__DEV__) {
|
|
106
|
+
console.log('Auth update received:', payload);
|
|
107
|
+
}
|
|
108
|
+
if (payload.status === 'authorized' && payload.sessionId) {
|
|
109
|
+
cleanup();
|
|
110
|
+
handleAuthSuccess(payload.sessionId);
|
|
111
|
+
} else if (payload.status === 'cancelled') {
|
|
112
|
+
cleanup();
|
|
113
|
+
setError('Authorization was denied.');
|
|
114
|
+
} else if (payload.status === 'expired') {
|
|
115
|
+
cleanup();
|
|
116
|
+
setError('Session expired. Please try again.');
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
socket.on('connect_error', err => {
|
|
120
|
+
if (__DEV__) {
|
|
121
|
+
console.log('Socket connection error, falling back to polling:', err.message);
|
|
122
|
+
}
|
|
123
|
+
// Fall back to polling if socket fails
|
|
124
|
+
socket.disconnect();
|
|
125
|
+
startPolling(sessionToken);
|
|
126
|
+
});
|
|
127
|
+
socket.on('disconnect', () => {
|
|
128
|
+
if (__DEV__) {
|
|
129
|
+
console.log('Auth socket disconnected');
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}, [oxyServices, handleAuthSuccess]);
|
|
133
|
+
|
|
134
|
+
// Start polling for authorization (fallback)
|
|
135
|
+
const startPolling = (0, _react.useCallback)(sessionToken => {
|
|
136
|
+
setConnectionType('polling');
|
|
137
|
+
pollingIntervalRef.current = setInterval(async () => {
|
|
138
|
+
if (isProcessingRef.current) return;
|
|
139
|
+
try {
|
|
140
|
+
const response = await oxyServices.makeRequest('GET', `/api/auth/session/status/${sessionToken}`, undefined, {
|
|
141
|
+
cache: false
|
|
142
|
+
});
|
|
143
|
+
if (response.authorized && response.sessionId) {
|
|
144
|
+
cleanup();
|
|
145
|
+
handleAuthSuccess(response.sessionId);
|
|
146
|
+
} else if (response.status === 'cancelled') {
|
|
147
|
+
cleanup();
|
|
148
|
+
setError('Authorization was denied.');
|
|
149
|
+
} else if (response.status === 'expired') {
|
|
150
|
+
cleanup();
|
|
151
|
+
setError('Session expired. Please try again.');
|
|
152
|
+
}
|
|
153
|
+
} catch (err) {
|
|
154
|
+
// Silent fail for polling - will retry
|
|
155
|
+
if (__DEV__) {
|
|
156
|
+
console.log('Auth polling error:', err);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}, POLLING_INTERVAL_MS);
|
|
160
|
+
}, [oxyServices, handleAuthSuccess]);
|
|
161
|
+
|
|
162
|
+
// Cleanup socket and polling
|
|
163
|
+
const cleanup = (0, _react.useCallback)(() => {
|
|
164
|
+
setIsWaiting(false);
|
|
165
|
+
if (socketRef.current) {
|
|
166
|
+
socketRef.current.disconnect();
|
|
167
|
+
socketRef.current = null;
|
|
168
|
+
}
|
|
169
|
+
if (pollingIntervalRef.current) {
|
|
170
|
+
clearInterval(pollingIntervalRef.current);
|
|
171
|
+
pollingIntervalRef.current = null;
|
|
172
|
+
}
|
|
173
|
+
}, []);
|
|
50
174
|
|
|
51
175
|
// Generate a new auth session
|
|
52
176
|
const generateAuthSession = (0, _react.useCallback)(async () => {
|
|
53
177
|
setIsLoading(true);
|
|
54
178
|
setError(null);
|
|
179
|
+
isProcessingRef.current = false;
|
|
55
180
|
try {
|
|
56
181
|
// Generate a unique session token for this auth request
|
|
57
182
|
const sessionToken = generateSessionToken();
|
|
58
183
|
const expiresAt = Date.now() + AUTH_SESSION_EXPIRY_MS;
|
|
59
184
|
|
|
60
185
|
// Register the auth session with the server
|
|
61
|
-
// The server will associate this token with the user when they authorize in Accounts
|
|
62
186
|
await oxyServices.makeRequest('POST', '/api/auth/session/create', {
|
|
63
187
|
sessionToken,
|
|
64
188
|
expiresAt,
|
|
@@ -70,13 +194,16 @@ const OxyAuthScreen = ({
|
|
|
70
194
|
sessionToken,
|
|
71
195
|
expiresAt
|
|
72
196
|
});
|
|
73
|
-
|
|
197
|
+
setIsWaiting(true);
|
|
198
|
+
|
|
199
|
+
// Try socket first, will fall back to polling if needed
|
|
200
|
+
connectSocket(sessionToken);
|
|
74
201
|
} catch (err) {
|
|
75
202
|
setError(err.message || 'Failed to create auth session');
|
|
76
203
|
} finally {
|
|
77
204
|
setIsLoading(false);
|
|
78
205
|
}
|
|
79
|
-
}, [oxyServices]);
|
|
206
|
+
}, [oxyServices, connectSocket]);
|
|
80
207
|
|
|
81
208
|
// Generate a random session token
|
|
82
209
|
const generateSessionToken = () => {
|
|
@@ -88,49 +215,12 @@ const OxyAuthScreen = ({
|
|
|
88
215
|
return result;
|
|
89
216
|
};
|
|
90
217
|
|
|
91
|
-
// Start polling for authorization
|
|
92
|
-
const startPolling = (0, _react.useCallback)(sessionToken => {
|
|
93
|
-
setIsPolling(true);
|
|
94
|
-
pollingIntervalRef.current = setInterval(async () => {
|
|
95
|
-
try {
|
|
96
|
-
const response = await oxyServices.makeRequest('GET', `/api/auth/session/status/${sessionToken}`, undefined, {
|
|
97
|
-
cache: false
|
|
98
|
-
});
|
|
99
|
-
if (response.authorized && response.sessionId) {
|
|
100
|
-
// Authorization successful!
|
|
101
|
-
stopPolling();
|
|
102
|
-
|
|
103
|
-
// Get token and user data
|
|
104
|
-
await oxyServices.getTokenBySession(response.sessionId);
|
|
105
|
-
const user = await oxyServices.getUserBySession(response.sessionId);
|
|
106
|
-
if (onAuthenticated) {
|
|
107
|
-
onAuthenticated(user);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
} catch (err) {
|
|
111
|
-
// Silent fail for polling - will retry
|
|
112
|
-
if (__DEV__) {
|
|
113
|
-
console.log('Auth polling error:', err);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}, 2000); // Poll every 2 seconds
|
|
117
|
-
}, [oxyServices, onAuthenticated]);
|
|
118
|
-
|
|
119
|
-
// Stop polling
|
|
120
|
-
const stopPolling = (0, _react.useCallback)(() => {
|
|
121
|
-
setIsPolling(false);
|
|
122
|
-
if (pollingIntervalRef.current) {
|
|
123
|
-
clearInterval(pollingIntervalRef.current);
|
|
124
|
-
pollingIntervalRef.current = null;
|
|
125
|
-
}
|
|
126
|
-
}, []);
|
|
127
|
-
|
|
128
218
|
// Clean up on unmount
|
|
129
219
|
(0, _react.useEffect)(() => {
|
|
130
220
|
return () => {
|
|
131
|
-
|
|
221
|
+
cleanup();
|
|
132
222
|
};
|
|
133
|
-
}, [
|
|
223
|
+
}, [cleanup]);
|
|
134
224
|
|
|
135
225
|
// Initialize auth session
|
|
136
226
|
(0, _react.useEffect)(() => {
|
|
@@ -140,11 +230,11 @@ const OxyAuthScreen = ({
|
|
|
140
230
|
// Check if session expired
|
|
141
231
|
(0, _react.useEffect)(() => {
|
|
142
232
|
if (authSession && Date.now() > authSession.expiresAt) {
|
|
143
|
-
|
|
233
|
+
cleanup();
|
|
144
234
|
setAuthSession(null);
|
|
145
235
|
setError('Session expired. Please try again.');
|
|
146
236
|
}
|
|
147
|
-
}, [authSession,
|
|
237
|
+
}, [authSession, cleanup]);
|
|
148
238
|
|
|
149
239
|
// Build the QR code data
|
|
150
240
|
const getQRData = () => {
|
|
@@ -179,9 +269,9 @@ const OxyAuthScreen = ({
|
|
|
179
269
|
|
|
180
270
|
// Refresh session
|
|
181
271
|
const handleRefresh = (0, _react.useCallback)(() => {
|
|
182
|
-
|
|
272
|
+
cleanup();
|
|
183
273
|
generateAuthSession();
|
|
184
|
-
}, [generateAuthSession,
|
|
274
|
+
}, [generateAuthSession, cleanup]);
|
|
185
275
|
if (isLoading) {
|
|
186
276
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
187
277
|
style: [styles.container, {
|
|
@@ -259,37 +349,39 @@ const OxyAuthScreen = ({
|
|
|
259
349
|
}],
|
|
260
350
|
children: "Scan with Oxy Accounts app"
|
|
261
351
|
})]
|
|
262
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
352
|
+
}), _reactNative.Platform.OS !== 'web' && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
353
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
354
|
+
style: styles.dividerContainer,
|
|
355
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
356
|
+
style: [styles.divider, {
|
|
357
|
+
backgroundColor: colors.border
|
|
358
|
+
}]
|
|
359
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
360
|
+
style: [styles.dividerText, {
|
|
361
|
+
color: colors.secondaryText
|
|
362
|
+
}],
|
|
363
|
+
children: "or"
|
|
364
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
365
|
+
style: [styles.divider, {
|
|
366
|
+
backgroundColor: colors.border
|
|
367
|
+
}]
|
|
368
|
+
})]
|
|
369
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
|
|
370
|
+
style: [styles.button, {
|
|
371
|
+
backgroundColor: colors.primary
|
|
271
372
|
}],
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
onPress: handleOpenAccounts,
|
|
283
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_OxyLogo.default, {
|
|
284
|
-
width: 20,
|
|
285
|
-
height: 20,
|
|
286
|
-
fillColor: "white",
|
|
287
|
-
style: styles.buttonIcon
|
|
288
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
289
|
-
style: styles.buttonText,
|
|
290
|
-
children: "Open Oxy Accounts"
|
|
373
|
+
onPress: handleOpenAccounts,
|
|
374
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_OxyLogo.default, {
|
|
375
|
+
width: 20,
|
|
376
|
+
height: 20,
|
|
377
|
+
fillColor: "white",
|
|
378
|
+
style: styles.buttonIcon
|
|
379
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
380
|
+
style: styles.buttonText,
|
|
381
|
+
children: "Open Oxy Accounts"
|
|
382
|
+
})]
|
|
291
383
|
})]
|
|
292
|
-
}),
|
|
384
|
+
}), isWaiting && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
293
385
|
style: styles.statusContainer,
|
|
294
386
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ActivityIndicator, {
|
|
295
387
|
size: "small",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_styles","_OxyContext","_reactNativeQrcodeSvg","_interopRequireDefault","_OxyLogo","_jsxRuntime","e","__esModule","default","OXY_ACCOUNTS_SCHEME","OXY_ACCOUNTS_WEB_URL","AUTH_SESSION_EXPIRY_MS","OxyAuthScreen","navigate","goBack","onAuthenticated","theme","themeValue","colors","useThemeColors","oxyServices","signIn","useOxy","authSession","setAuthSession","useState","isLoading","setIsLoading","error","setError","isPolling","setIsPolling","pollingIntervalRef","useRef","generateAuthSession","useCallback","sessionToken","generateSessionToken","expiresAt","Date","now","makeRequest","appId","Platform","OS","cache","startPolling","err","message","chars","result","i","charAt","Math","floor","random","length","current","setInterval","response","undefined","authorized","sessionId","stopPolling","getTokenBySession","user","getUserBySession","__DEV__","console","log","clearInterval","useEffect","getQRData","handleOpenAccounts","deepLinkUrl","webUrl","canOpen","Linking","canOpenURL","openURL","handleRefresh","jsxs","View","style","styles","container","backgroundColor","background","children","jsx","ActivityIndicator","size","color","primary","Text","loadingText","secondaryText","errorText","TouchableOpacity","button","onPress","buttonText","header","width","height","title","text","subtitle","qrContainer","inputBackground","borderColor","border","qrWrapper","value","qrHint","dividerContainer","divider","dividerText","fillColor","buttonIcon","statusContainer","statusText","footer","footerText","footerLink","cancelButton","cancelText","StyleSheet","create","flex","padding","alignItems","justifyContent","marginBottom","fontSize","fontWeight","marginTop","textAlign","borderRadius","borderWidth","flexDirection","marginVertical","marginHorizontal","paddingVertical","paddingHorizontal","marginRight","marginLeft","_default","exports"],"sourceRoot":"../../../../src","sources":["ui/screens/OxyAuthScreen.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_socket","_interopRequireDefault","_styles","_OxyContext","_reactNativeQrcodeSvg","_OxyLogo","_jsxRuntime","e","__esModule","default","OXY_ACCOUNTS_SCHEME","OXY_ACCOUNTS_WEB_URL","AUTH_SESSION_EXPIRY_MS","POLLING_INTERVAL_MS","OxyAuthScreen","navigate","goBack","onAuthenticated","theme","themeValue","colors","useThemeColors","oxyServices","signIn","useOxy","authSession","setAuthSession","useState","isLoading","setIsLoading","error","setError","isWaiting","setIsWaiting","connectionType","setConnectionType","socketRef","useRef","pollingIntervalRef","isProcessingRef","handleAuthSuccess","useCallback","sessionId","current","getTokenBySession","user","getUserBySession","err","__DEV__","console","connectSocket","sessionToken","baseURL","getBaseURL","socket","io","transports","reconnection","reconnectionAttempts","reconnectionDelay","on","log","emit","payload","status","cleanup","message","disconnect","startPolling","setInterval","response","makeRequest","undefined","cache","authorized","clearInterval","generateAuthSession","generateSessionToken","expiresAt","Date","now","appId","Platform","OS","chars","result","i","charAt","Math","floor","random","length","useEffect","getQRData","handleOpenAccounts","deepLinkUrl","webUrl","canOpen","Linking","canOpenURL","openURL","handleRefresh","jsxs","View","style","styles","container","backgroundColor","background","children","jsx","ActivityIndicator","size","color","primary","Text","loadingText","secondaryText","errorText","TouchableOpacity","button","onPress","buttonText","header","width","height","title","text","subtitle","qrContainer","inputBackground","borderColor","border","qrWrapper","value","qrHint","Fragment","dividerContainer","divider","dividerText","fillColor","buttonIcon","statusContainer","statusText","footer","footerText","footerLink","cancelButton","cancelText","StyleSheet","create","flex","padding","alignItems","justifyContent","marginBottom","fontSize","fontWeight","marginTop","textAlign","borderRadius","borderWidth","flexDirection","marginVertical","marginHorizontal","paddingVertical","paddingHorizontal","marginRight","marginLeft","_default","exports"],"sourceRoot":"../../../../src","sources":["ui/screens/OxyAuthScreen.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,24 +8,29 @@
|
|
|
8
8
|
* 1. Scan QR code with Oxy Accounts app
|
|
9
9
|
* 2. Open Oxy Accounts app directly (via deep link)
|
|
10
10
|
*
|
|
11
|
+
* Uses WebSocket for real-time authorization updates (with polling fallback).
|
|
11
12
|
* The Oxy Accounts app is where users manage their cryptographic identity.
|
|
12
13
|
* This screen should NOT be used within the Accounts app itself.
|
|
13
14
|
*/
|
|
14
15
|
|
|
15
16
|
import { useState, useEffect, useCallback, useRef } from 'react';
|
|
16
17
|
import { View, Text, TouchableOpacity, StyleSheet, Linking, Platform, ActivityIndicator } from 'react-native';
|
|
18
|
+
import io from 'socket.io-client';
|
|
17
19
|
import { useThemeColors } from '../styles';
|
|
18
20
|
import { useOxy } from '../context/OxyContext';
|
|
19
21
|
import QRCode from 'react-native-qrcode-svg';
|
|
20
22
|
import OxyLogo from '../components/OxyLogo';
|
|
21
23
|
|
|
22
24
|
// Deep link scheme for Oxy Accounts app
|
|
23
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
25
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
24
26
|
const OXY_ACCOUNTS_SCHEME = 'oxyaccounts://';
|
|
25
27
|
const OXY_ACCOUNTS_WEB_URL = 'https://accounts.oxy.so';
|
|
26
28
|
|
|
27
29
|
// Auth session expiration (5 minutes)
|
|
28
30
|
const AUTH_SESSION_EXPIRY_MS = 5 * 60 * 1000;
|
|
31
|
+
|
|
32
|
+
// Polling interval (fallback if socket fails)
|
|
33
|
+
const POLLING_INTERVAL_MS = 3000;
|
|
29
34
|
const OxyAuthScreen = ({
|
|
30
35
|
navigate,
|
|
31
36
|
goBack,
|
|
@@ -41,20 +46,139 @@ const OxyAuthScreen = ({
|
|
|
41
46
|
const [authSession, setAuthSession] = useState(null);
|
|
42
47
|
const [isLoading, setIsLoading] = useState(true);
|
|
43
48
|
const [error, setError] = useState(null);
|
|
44
|
-
const [
|
|
49
|
+
const [isWaiting, setIsWaiting] = useState(false);
|
|
50
|
+
const [connectionType, setConnectionType] = useState('socket');
|
|
51
|
+
const socketRef = useRef(null);
|
|
45
52
|
const pollingIntervalRef = useRef(null);
|
|
53
|
+
const isProcessingRef = useRef(false);
|
|
54
|
+
|
|
55
|
+
// Handle successful authorization
|
|
56
|
+
const handleAuthSuccess = useCallback(async sessionId => {
|
|
57
|
+
if (isProcessingRef.current) return;
|
|
58
|
+
isProcessingRef.current = true;
|
|
59
|
+
try {
|
|
60
|
+
// Get token and user data
|
|
61
|
+
await oxyServices.getTokenBySession(sessionId);
|
|
62
|
+
const user = await oxyServices.getUserBySession(sessionId);
|
|
63
|
+
if (onAuthenticated) {
|
|
64
|
+
onAuthenticated(user);
|
|
65
|
+
}
|
|
66
|
+
} catch (err) {
|
|
67
|
+
if (__DEV__) {
|
|
68
|
+
console.error('Error completing auth:', err);
|
|
69
|
+
}
|
|
70
|
+
setError('Authorization successful but failed to complete sign in. Please try again.');
|
|
71
|
+
isProcessingRef.current = false;
|
|
72
|
+
}
|
|
73
|
+
}, [oxyServices, onAuthenticated]);
|
|
74
|
+
|
|
75
|
+
// Connect to socket for real-time updates
|
|
76
|
+
const connectSocket = useCallback(sessionToken => {
|
|
77
|
+
const baseURL = oxyServices.getBaseURL();
|
|
78
|
+
|
|
79
|
+
// Connect to the auth-session namespace (no authentication required)
|
|
80
|
+
const socket = io(`${baseURL}/auth-session`, {
|
|
81
|
+
transports: ['websocket', 'polling'],
|
|
82
|
+
reconnection: true,
|
|
83
|
+
reconnectionAttempts: 3,
|
|
84
|
+
reconnectionDelay: 1000
|
|
85
|
+
});
|
|
86
|
+
socketRef.current = socket;
|
|
87
|
+
socket.on('connect', () => {
|
|
88
|
+
if (__DEV__) {
|
|
89
|
+
console.log('Auth socket connected');
|
|
90
|
+
}
|
|
91
|
+
// Join the room for this session token
|
|
92
|
+
socket.emit('join', sessionToken);
|
|
93
|
+
setConnectionType('socket');
|
|
94
|
+
});
|
|
95
|
+
socket.on('joined', () => {
|
|
96
|
+
if (__DEV__) {
|
|
97
|
+
console.log('Joined auth session room');
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
socket.on('auth_update', payload => {
|
|
101
|
+
if (__DEV__) {
|
|
102
|
+
console.log('Auth update received:', payload);
|
|
103
|
+
}
|
|
104
|
+
if (payload.status === 'authorized' && payload.sessionId) {
|
|
105
|
+
cleanup();
|
|
106
|
+
handleAuthSuccess(payload.sessionId);
|
|
107
|
+
} else if (payload.status === 'cancelled') {
|
|
108
|
+
cleanup();
|
|
109
|
+
setError('Authorization was denied.');
|
|
110
|
+
} else if (payload.status === 'expired') {
|
|
111
|
+
cleanup();
|
|
112
|
+
setError('Session expired. Please try again.');
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
socket.on('connect_error', err => {
|
|
116
|
+
if (__DEV__) {
|
|
117
|
+
console.log('Socket connection error, falling back to polling:', err.message);
|
|
118
|
+
}
|
|
119
|
+
// Fall back to polling if socket fails
|
|
120
|
+
socket.disconnect();
|
|
121
|
+
startPolling(sessionToken);
|
|
122
|
+
});
|
|
123
|
+
socket.on('disconnect', () => {
|
|
124
|
+
if (__DEV__) {
|
|
125
|
+
console.log('Auth socket disconnected');
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
}, [oxyServices, handleAuthSuccess]);
|
|
129
|
+
|
|
130
|
+
// Start polling for authorization (fallback)
|
|
131
|
+
const startPolling = useCallback(sessionToken => {
|
|
132
|
+
setConnectionType('polling');
|
|
133
|
+
pollingIntervalRef.current = setInterval(async () => {
|
|
134
|
+
if (isProcessingRef.current) return;
|
|
135
|
+
try {
|
|
136
|
+
const response = await oxyServices.makeRequest('GET', `/api/auth/session/status/${sessionToken}`, undefined, {
|
|
137
|
+
cache: false
|
|
138
|
+
});
|
|
139
|
+
if (response.authorized && response.sessionId) {
|
|
140
|
+
cleanup();
|
|
141
|
+
handleAuthSuccess(response.sessionId);
|
|
142
|
+
} else if (response.status === 'cancelled') {
|
|
143
|
+
cleanup();
|
|
144
|
+
setError('Authorization was denied.');
|
|
145
|
+
} else if (response.status === 'expired') {
|
|
146
|
+
cleanup();
|
|
147
|
+
setError('Session expired. Please try again.');
|
|
148
|
+
}
|
|
149
|
+
} catch (err) {
|
|
150
|
+
// Silent fail for polling - will retry
|
|
151
|
+
if (__DEV__) {
|
|
152
|
+
console.log('Auth polling error:', err);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}, POLLING_INTERVAL_MS);
|
|
156
|
+
}, [oxyServices, handleAuthSuccess]);
|
|
157
|
+
|
|
158
|
+
// Cleanup socket and polling
|
|
159
|
+
const cleanup = useCallback(() => {
|
|
160
|
+
setIsWaiting(false);
|
|
161
|
+
if (socketRef.current) {
|
|
162
|
+
socketRef.current.disconnect();
|
|
163
|
+
socketRef.current = null;
|
|
164
|
+
}
|
|
165
|
+
if (pollingIntervalRef.current) {
|
|
166
|
+
clearInterval(pollingIntervalRef.current);
|
|
167
|
+
pollingIntervalRef.current = null;
|
|
168
|
+
}
|
|
169
|
+
}, []);
|
|
46
170
|
|
|
47
171
|
// Generate a new auth session
|
|
48
172
|
const generateAuthSession = useCallback(async () => {
|
|
49
173
|
setIsLoading(true);
|
|
50
174
|
setError(null);
|
|
175
|
+
isProcessingRef.current = false;
|
|
51
176
|
try {
|
|
52
177
|
// Generate a unique session token for this auth request
|
|
53
178
|
const sessionToken = generateSessionToken();
|
|
54
179
|
const expiresAt = Date.now() + AUTH_SESSION_EXPIRY_MS;
|
|
55
180
|
|
|
56
181
|
// Register the auth session with the server
|
|
57
|
-
// The server will associate this token with the user when they authorize in Accounts
|
|
58
182
|
await oxyServices.makeRequest('POST', '/api/auth/session/create', {
|
|
59
183
|
sessionToken,
|
|
60
184
|
expiresAt,
|
|
@@ -66,13 +190,16 @@ const OxyAuthScreen = ({
|
|
|
66
190
|
sessionToken,
|
|
67
191
|
expiresAt
|
|
68
192
|
});
|
|
69
|
-
|
|
193
|
+
setIsWaiting(true);
|
|
194
|
+
|
|
195
|
+
// Try socket first, will fall back to polling if needed
|
|
196
|
+
connectSocket(sessionToken);
|
|
70
197
|
} catch (err) {
|
|
71
198
|
setError(err.message || 'Failed to create auth session');
|
|
72
199
|
} finally {
|
|
73
200
|
setIsLoading(false);
|
|
74
201
|
}
|
|
75
|
-
}, [oxyServices]);
|
|
202
|
+
}, [oxyServices, connectSocket]);
|
|
76
203
|
|
|
77
204
|
// Generate a random session token
|
|
78
205
|
const generateSessionToken = () => {
|
|
@@ -84,49 +211,12 @@ const OxyAuthScreen = ({
|
|
|
84
211
|
return result;
|
|
85
212
|
};
|
|
86
213
|
|
|
87
|
-
// Start polling for authorization
|
|
88
|
-
const startPolling = useCallback(sessionToken => {
|
|
89
|
-
setIsPolling(true);
|
|
90
|
-
pollingIntervalRef.current = setInterval(async () => {
|
|
91
|
-
try {
|
|
92
|
-
const response = await oxyServices.makeRequest('GET', `/api/auth/session/status/${sessionToken}`, undefined, {
|
|
93
|
-
cache: false
|
|
94
|
-
});
|
|
95
|
-
if (response.authorized && response.sessionId) {
|
|
96
|
-
// Authorization successful!
|
|
97
|
-
stopPolling();
|
|
98
|
-
|
|
99
|
-
// Get token and user data
|
|
100
|
-
await oxyServices.getTokenBySession(response.sessionId);
|
|
101
|
-
const user = await oxyServices.getUserBySession(response.sessionId);
|
|
102
|
-
if (onAuthenticated) {
|
|
103
|
-
onAuthenticated(user);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
} catch (err) {
|
|
107
|
-
// Silent fail for polling - will retry
|
|
108
|
-
if (__DEV__) {
|
|
109
|
-
console.log('Auth polling error:', err);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}, 2000); // Poll every 2 seconds
|
|
113
|
-
}, [oxyServices, onAuthenticated]);
|
|
114
|
-
|
|
115
|
-
// Stop polling
|
|
116
|
-
const stopPolling = useCallback(() => {
|
|
117
|
-
setIsPolling(false);
|
|
118
|
-
if (pollingIntervalRef.current) {
|
|
119
|
-
clearInterval(pollingIntervalRef.current);
|
|
120
|
-
pollingIntervalRef.current = null;
|
|
121
|
-
}
|
|
122
|
-
}, []);
|
|
123
|
-
|
|
124
214
|
// Clean up on unmount
|
|
125
215
|
useEffect(() => {
|
|
126
216
|
return () => {
|
|
127
|
-
|
|
217
|
+
cleanup();
|
|
128
218
|
};
|
|
129
|
-
}, [
|
|
219
|
+
}, [cleanup]);
|
|
130
220
|
|
|
131
221
|
// Initialize auth session
|
|
132
222
|
useEffect(() => {
|
|
@@ -136,11 +226,11 @@ const OxyAuthScreen = ({
|
|
|
136
226
|
// Check if session expired
|
|
137
227
|
useEffect(() => {
|
|
138
228
|
if (authSession && Date.now() > authSession.expiresAt) {
|
|
139
|
-
|
|
229
|
+
cleanup();
|
|
140
230
|
setAuthSession(null);
|
|
141
231
|
setError('Session expired. Please try again.');
|
|
142
232
|
}
|
|
143
|
-
}, [authSession,
|
|
233
|
+
}, [authSession, cleanup]);
|
|
144
234
|
|
|
145
235
|
// Build the QR code data
|
|
146
236
|
const getQRData = () => {
|
|
@@ -175,9 +265,9 @@ const OxyAuthScreen = ({
|
|
|
175
265
|
|
|
176
266
|
// Refresh session
|
|
177
267
|
const handleRefresh = useCallback(() => {
|
|
178
|
-
|
|
268
|
+
cleanup();
|
|
179
269
|
generateAuthSession();
|
|
180
|
-
}, [generateAuthSession,
|
|
270
|
+
}, [generateAuthSession, cleanup]);
|
|
181
271
|
if (isLoading) {
|
|
182
272
|
return /*#__PURE__*/_jsxs(View, {
|
|
183
273
|
style: [styles.container, {
|
|
@@ -255,37 +345,39 @@ const OxyAuthScreen = ({
|
|
|
255
345
|
}],
|
|
256
346
|
children: "Scan with Oxy Accounts app"
|
|
257
347
|
})]
|
|
258
|
-
}), /*#__PURE__*/_jsxs(
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
348
|
+
}), Platform.OS !== 'web' && /*#__PURE__*/_jsxs(_Fragment, {
|
|
349
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
350
|
+
style: styles.dividerContainer,
|
|
351
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
352
|
+
style: [styles.divider, {
|
|
353
|
+
backgroundColor: colors.border
|
|
354
|
+
}]
|
|
355
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
356
|
+
style: [styles.dividerText, {
|
|
357
|
+
color: colors.secondaryText
|
|
358
|
+
}],
|
|
359
|
+
children: "or"
|
|
360
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
361
|
+
style: [styles.divider, {
|
|
362
|
+
backgroundColor: colors.border
|
|
363
|
+
}]
|
|
364
|
+
})]
|
|
365
|
+
}), /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
366
|
+
style: [styles.button, {
|
|
367
|
+
backgroundColor: colors.primary
|
|
267
368
|
}],
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
onPress: handleOpenAccounts,
|
|
279
|
-
children: [/*#__PURE__*/_jsx(OxyLogo, {
|
|
280
|
-
width: 20,
|
|
281
|
-
height: 20,
|
|
282
|
-
fillColor: "white",
|
|
283
|
-
style: styles.buttonIcon
|
|
284
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
285
|
-
style: styles.buttonText,
|
|
286
|
-
children: "Open Oxy Accounts"
|
|
369
|
+
onPress: handleOpenAccounts,
|
|
370
|
+
children: [/*#__PURE__*/_jsx(OxyLogo, {
|
|
371
|
+
width: 20,
|
|
372
|
+
height: 20,
|
|
373
|
+
fillColor: "white",
|
|
374
|
+
style: styles.buttonIcon
|
|
375
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
376
|
+
style: styles.buttonText,
|
|
377
|
+
children: "Open Oxy Accounts"
|
|
378
|
+
})]
|
|
287
379
|
})]
|
|
288
|
-
}),
|
|
380
|
+
}), isWaiting && /*#__PURE__*/_jsxs(View, {
|
|
289
381
|
style: styles.statusContainer,
|
|
290
382
|
children: [/*#__PURE__*/_jsx(ActivityIndicator, {
|
|
291
383
|
size: "small",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useEffect","useCallback","useRef","View","Text","TouchableOpacity","StyleSheet","Linking","Platform","ActivityIndicator","useThemeColors","useOxy","QRCode","OxyLogo","jsx","_jsx","jsxs","_jsxs","OXY_ACCOUNTS_SCHEME","OXY_ACCOUNTS_WEB_URL","AUTH_SESSION_EXPIRY_MS","OxyAuthScreen","navigate","goBack","onAuthenticated","theme","themeValue","colors","oxyServices","signIn","authSession","setAuthSession","isLoading","setIsLoading","error","setError","isPolling","setIsPolling","pollingIntervalRef","generateAuthSession","sessionToken","generateSessionToken","expiresAt","Date","now","makeRequest","appId","OS","cache","startPolling","err","message","chars","result","i","charAt","Math","floor","random","length","current","setInterval","response","undefined","authorized","sessionId","stopPolling","getTokenBySession","user","getUserBySession","__DEV__","console","log","clearInterval","getQRData","handleOpenAccounts","deepLinkUrl","webUrl","canOpen","canOpenURL","openURL","handleRefresh","style","styles","container","backgroundColor","background","children","size","color","primary","loadingText","secondaryText","errorText","button","onPress","buttonText","header","width","height","title","text","subtitle","qrContainer","inputBackground","borderColor","border","qrWrapper","value","qrHint","dividerContainer","divider","dividerText","fillColor","buttonIcon","statusContainer","statusText","footer","footerText","footerLink","cancelButton","cancelText","create","flex","padding","alignItems","justifyContent","marginBottom","fontSize","fontWeight","marginTop","textAlign","borderRadius","borderWidth","flexDirection","marginVertical","marginHorizontal","paddingVertical","paddingHorizontal","marginRight","marginLeft"],"sourceRoot":"../../../../src","sources":["ui/screens/OxyAuthScreen.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,QAAQ,EAAEC,SAAS,EAAEC,WAAW,EAAEC,MAAM,QAAQ,OAAO;AAChE,SACEC,IAAI,EACJC,IAAI,EACJC,gBAAgB,EAChBC,UAAU,EACVC,OAAO,EACPC,QAAQ,EACRC,iBAAiB,QACZ,cAAc;AAErB,SAASC,cAAc,QAAQ,WAAW;AAC1C,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,OAAOC,MAAM,MAAM,yBAAyB;AAC5C,OAAOC,OAAO,MAAM,uBAAuB;;AAE3C;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AACA,MAAMC,mBAAmB,GAAG,gBAAgB;AAC5C,MAAMC,oBAAoB,GAAG,yBAAyB;;AAEtD;AACA,MAAMC,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI;AAO5C,MAAMC,aAAwC,GAAGA,CAAC;EAChDC,QAAQ;EACRC,MAAM;EACNC,eAAe;EACfC;AACF,CAAC,KAAK;EACJ,MAAMC,UAAU,GAAID,KAAK,KAAK,OAAO,IAAIA,KAAK,KAAK,MAAM,GAAIA,KAAK,GAAG,OAAO;EAC5E,MAAME,MAAM,GAAGjB,cAAc,CAACgB,UAAU,CAAC;EACzC,MAAM;IAAEE,WAAW;IAAEC;EAAO,CAAC,GAAGlB,MAAM,CAAC,CAAC;EAExC,MAAM,CAACmB,WAAW,EAAEC,cAAc,CAAC,GAAGhC,QAAQ,CAAqB,IAAI,CAAC;EACxE,MAAM,CAACiC,SAAS,EAAEC,YAAY,CAAC,GAAGlC,QAAQ,CAAC,IAAI,CAAC;EAChD,MAAM,CAACmC,KAAK,EAAEC,QAAQ,CAAC,GAAGpC,QAAQ,CAAgB,IAAI,CAAC;EACvD,MAAM,CAACqC,SAAS,EAAEC,YAAY,CAAC,GAAGtC,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAMuC,kBAAkB,GAAGpC,MAAM,CAAwC,IAAI,CAAC;;EAE9E;EACA,MAAMqC,mBAAmB,GAAGtC,WAAW,CAAC,YAAY;IAClDgC,YAAY,CAAC,IAAI,CAAC;IAClBE,QAAQ,CAAC,IAAI,CAAC;IAEd,IAAI;MACF;MACA,MAAMK,YAAY,GAAGC,oBAAoB,CAAC,CAAC;MAC3C,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGxB,sBAAsB;;MAErD;MACA;MACA,MAAMQ,WAAW,CAACiB,WAAW,CAAC,MAAM,EAAE,0BAA0B,EAAE;QAChEL,YAAY;QACZE,SAAS;QACTI,KAAK,EAAEtC,QAAQ,CAACuC,EAAE,CAAE;MACtB,CAAC,EAAE;QAAEC,KAAK,EAAE;MAAM,CAAC,CAAC;MAEpBjB,cAAc,CAAC;QAAES,YAAY;QAAEE;MAAU,CAAC,CAAC;MAC3CO,YAAY,CAACT,YAAY,CAAC;IAC5B,CAAC,CAAC,OAAOU,GAAQ,EAAE;MACjBf,QAAQ,CAACe,GAAG,CAACC,OAAO,IAAI,+BAA+B,CAAC;IAC1D,CAAC,SAAS;MACRlB,YAAY,CAAC,KAAK,CAAC;IACrB;EACF,CAAC,EAAE,CAACL,WAAW,CAAC,CAAC;;EAEjB;EACA,MAAMa,oBAAoB,GAAGA,CAAA,KAAc;IACzC,MAAMW,KAAK,GAAG,gEAAgE;IAC9E,IAAIC,MAAM,GAAG,EAAE;IACf,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,EAAE;MAC3BD,MAAM,IAAID,KAAK,CAACG,MAAM,CAACC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAAGN,KAAK,CAACO,MAAM,CAAC,CAAC;IAClE;IACA,OAAON,MAAM;EACf,CAAC;;EAED;EACA,MAAMJ,YAAY,GAAGhD,WAAW,CAAEuC,YAAoB,IAAK;IACzDH,YAAY,CAAC,IAAI,CAAC;IAElBC,kBAAkB,CAACsB,OAAO,GAAGC,WAAW,CAAC,YAAY;MACnD,IAAI;QACF,MAAMC,QAAQ,GAAG,MAAMlC,WAAW,CAACiB,WAAW,CAI3C,KAAK,EAAE,4BAA4BL,YAAY,EAAE,EAAEuB,SAAS,EAAE;UAAEf,KAAK,EAAE;QAAM,CAAC,CAAC;QAElF,IAAIc,QAAQ,CAACE,UAAU,IAAIF,QAAQ,CAACG,SAAS,EAAE;UAC7C;UACAC,WAAW,CAAC,CAAC;;UAEb;UACA,MAAMtC,WAAW,CAACuC,iBAAiB,CAACL,QAAQ,CAACG,SAAS,CAAC;UACvD,MAAMG,IAAI,GAAG,MAAMxC,WAAW,CAACyC,gBAAgB,CAACP,QAAQ,CAACG,SAAS,CAAC;UAEnE,IAAIzC,eAAe,EAAE;YACnBA,eAAe,CAAC4C,IAAI,CAAC;UACvB;QACF;MACF,CAAC,CAAC,OAAOlB,GAAG,EAAE;QACZ;QACA,IAAIoB,OAAO,EAAE;UACXC,OAAO,CAACC,GAAG,CAAC,qBAAqB,EAAEtB,GAAG,CAAC;QACzC;MACF;IACF,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;EACZ,CAAC,EAAE,CAACtB,WAAW,EAAEJ,eAAe,CAAC,CAAC;;EAElC;EACA,MAAM0C,WAAW,GAAGjE,WAAW,CAAC,MAAM;IACpCoC,YAAY,CAAC,KAAK,CAAC;IACnB,IAAIC,kBAAkB,CAACsB,OAAO,EAAE;MAC9Ba,aAAa,CAACnC,kBAAkB,CAACsB,OAAO,CAAC;MACzCtB,kBAAkB,CAACsB,OAAO,GAAG,IAAI;IACnC;EACF,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA5D,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXkE,WAAW,CAAC,CAAC;IACf,CAAC;EACH,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;;EAEjB;EACAlE,SAAS,CAAC,MAAM;IACduC,mBAAmB,CAAC,CAAC;EACvB,CAAC,EAAE,EAAE,CAAC;;EAEN;EACAvC,SAAS,CAAC,MAAM;IACd,IAAI8B,WAAW,IAAIa,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGd,WAAW,CAACY,SAAS,EAAE;MACrDwB,WAAW,CAAC,CAAC;MACbnC,cAAc,CAAC,IAAI,CAAC;MACpBI,QAAQ,CAAC,oCAAoC,CAAC;IAChD;EACF,CAAC,EAAE,CAACL,WAAW,EAAEoC,WAAW,CAAC,CAAC;;EAE9B;EACA,MAAMQ,SAAS,GAAGA,CAAA,KAAc;IAC9B,IAAI,CAAC5C,WAAW,EAAE,OAAO,EAAE;;IAE3B;IACA,OAAO,aAAaA,WAAW,CAACU,YAAY,EAAE;EAChD,CAAC;;EAED;EACA,MAAMmC,kBAAkB,GAAG1E,WAAW,CAAC,YAAY;IACjD,IAAI,CAAC6B,WAAW,EAAE;IAElB,MAAM8C,WAAW,GAAG,GAAG1D,mBAAmB,mBAAmBY,WAAW,CAACU,YAAY,EAAE;IACvF,MAAMqC,MAAM,GAAG,GAAG1D,oBAAoB,oBAAoBW,WAAW,CAACU,YAAY,EAAE;IAEpF,IAAI;MACF,MAAMsC,OAAO,GAAG,MAAMvE,OAAO,CAACwE,UAAU,CAACH,WAAW,CAAC;MAErD,IAAIE,OAAO,EAAE;QACX,MAAMvE,OAAO,CAACyE,OAAO,CAACJ,WAAW,CAAC;MACpC,CAAC,MAAM;QACL;QACA,MAAMrE,OAAO,CAACyE,OAAO,CAACH,MAAM,CAAC;MAC/B;IACF,CAAC,CAAC,OAAO3B,GAAG,EAAE;MACZ;MACA,IAAI;QACF,MAAM3C,OAAO,CAACyE,OAAO,CAACH,MAAM,CAAC;MAC/B,CAAC,CAAC,MAAM;QACN1C,QAAQ,CAAC,qEAAqE,CAAC;MACjF;IACF;EACF,CAAC,EAAE,CAACL,WAAW,CAAC,CAAC;;EAEjB;EACA,MAAMmD,aAAa,GAAGhF,WAAW,CAAC,MAAM;IACtCiE,WAAW,CAAC,CAAC;IACb3B,mBAAmB,CAAC,CAAC;EACvB,CAAC,EAAE,CAACA,mBAAmB,EAAE2B,WAAW,CAAC,CAAC;EAEtC,IAAIlC,SAAS,EAAE;IACb,oBACEf,KAAA,CAACd,IAAI;MAAC+E,KAAK,EAAE,CAACC,MAAM,CAACC,SAAS,EAAE;QAAEC,eAAe,EAAE1D,MAAM,CAAC2D;MAAW,CAAC,CAAE;MAAAC,QAAA,gBACtExE,IAAA,CAACN,iBAAiB;QAAC+E,IAAI,EAAC,OAAO;QAACC,KAAK,EAAE9D,MAAM,CAAC+D;MAAQ,CAAE,CAAC,eACzD3E,IAAA,CAACX,IAAI;QAAC8E,KAAK,EAAE,CAACC,MAAM,CAACQ,WAAW,EAAE;UAAEF,KAAK,EAAE9D,MAAM,CAACiE;QAAc,CAAC,CAAE;QAAAL,QAAA,EAAC;MAEpE,CAAM,CAAC;IAAA,CACH,CAAC;EAEX;EAEA,IAAIrD,KAAK,EAAE;IACT,oBACEjB,KAAA,CAACd,IAAI;MAAC+E,KAAK,EAAE,CAACC,MAAM,CAACC,SAAS,EAAE;QAAEC,eAAe,EAAE1D,MAAM,CAAC2D;MAAW,CAAC,CAAE;MAAAC,QAAA,gBACtExE,IAAA,CAACX,IAAI;QAAC8E,KAAK,EAAE,CAACC,MAAM,CAACU,SAAS,EAAE;UAAEJ,KAAK,EAAE9D,MAAM,CAACO;QAAM,CAAC,CAAE;QAAAqD,QAAA,EAAErD;MAAK,CAAO,CAAC,eACxEnB,IAAA,CAACV,gBAAgB;QACf6E,KAAK,EAAE,CAACC,MAAM,CAACW,MAAM,EAAE;UAAET,eAAe,EAAE1D,MAAM,CAAC+D;QAAQ,CAAC,CAAE;QAC5DK,OAAO,EAAEd,aAAc;QAAAM,QAAA,eAEvBxE,IAAA,CAACX,IAAI;UAAC8E,KAAK,EAAEC,MAAM,CAACa,UAAW;UAAAT,QAAA,EAAC;QAAS,CAAM;MAAC,CAChC,CAAC;IAAA,CACf,CAAC;EAEX;EAEA,oBACEtE,KAAA,CAACd,IAAI;IAAC+E,KAAK,EAAE,CAACC,MAAM,CAACC,SAAS,EAAE;MAAEC,eAAe,EAAE1D,MAAM,CAAC2D;IAAW,CAAC,CAAE;IAAAC,QAAA,gBAEtEtE,KAAA,CAACd,IAAI;MAAC+E,KAAK,EAAEC,MAAM,CAACc,MAAO;MAAAV,QAAA,gBACzBxE,IAAA,CAACF,OAAO;QAACqF,KAAK,EAAE,EAAG;QAACC,MAAM,EAAE;MAAG,CAAE,CAAC,eAClCpF,IAAA,CAACX,IAAI;QAAC8E,KAAK,EAAE,CAACC,MAAM,CAACiB,KAAK,EAAE;UAAEX,KAAK,EAAE9D,MAAM,CAAC0E;QAAK,CAAC,CAAE;QAAAd,QAAA,EAAC;MAAgB,CAAM,CAAC,eAC5ExE,IAAA,CAACX,IAAI;QAAC8E,KAAK,EAAE,CAACC,MAAM,CAACmB,QAAQ,EAAE;UAAEb,KAAK,EAAE9D,MAAM,CAACiE;QAAc,CAAC,CAAE;QAAAL,QAAA,EAAC;MAEjE,CAAM,CAAC;IAAA,CACH,CAAC,eAGPtE,KAAA,CAACd,IAAI;MAAC+E,KAAK,EAAE,CAACC,MAAM,CAACoB,WAAW,EAAE;QAAElB,eAAe,EAAE1D,MAAM,CAAC6E,eAAe;QAAEC,WAAW,EAAE9E,MAAM,CAAC+E;MAAO,CAAC,CAAE;MAAAnB,QAAA,gBACzGxE,IAAA,CAACZ,IAAI;QAAC+E,KAAK,EAAEC,MAAM,CAACwB,SAAU;QAAApB,QAAA,eAC5BxE,IAAA,CAACH,MAAM;UACLgG,KAAK,EAAElC,SAAS,CAAC,CAAE;UACnBc,IAAI,EAAE,GAAI;UACVH,eAAe,EAAC,OAAO;UACvBI,KAAK,EAAC;QAAO,CACd;MAAC,CACE,CAAC,eACP1E,IAAA,CAACX,IAAI;QAAC8E,KAAK,EAAE,CAACC,MAAM,CAAC0B,MAAM,EAAE;UAAEpB,KAAK,EAAE9D,MAAM,CAACiE;QAAc,CAAC,CAAE;QAAAL,QAAA,EAAC;MAE/D,CAAM,CAAC;IAAA,CACH,CAAC,eAGPtE,KAAA,CAACd,IAAI;MAAC+E,KAAK,EAAEC,MAAM,CAAC2B,gBAAiB;MAAAvB,QAAA,gBACnCxE,IAAA,CAACZ,IAAI;QAAC+E,KAAK,EAAE,CAACC,MAAM,CAAC4B,OAAO,EAAE;UAAE1B,eAAe,EAAE1D,MAAM,CAAC+E;QAAO,CAAC;MAAE,CAAE,CAAC,eACrE3F,IAAA,CAACX,IAAI;QAAC8E,KAAK,EAAE,CAACC,MAAM,CAAC6B,WAAW,EAAE;UAAEvB,KAAK,EAAE9D,MAAM,CAACiE;QAAc,CAAC,CAAE;QAAAL,QAAA,EAAC;MAAE,CAAM,CAAC,eAC7ExE,IAAA,CAACZ,IAAI;QAAC+E,KAAK,EAAE,CAACC,MAAM,CAAC4B,OAAO,EAAE;UAAE1B,eAAe,EAAE1D,MAAM,CAAC+E;QAAO,CAAC;MAAE,CAAE,CAAC;IAAA,CACjE,CAAC,eAGPzF,KAAA,CAACZ,gBAAgB;MACf6E,KAAK,EAAE,CAACC,MAAM,CAACW,MAAM,EAAE;QAAET,eAAe,EAAE1D,MAAM,CAAC+D;MAAQ,CAAC,CAAE;MAC5DK,OAAO,EAAEpB,kBAAmB;MAAAY,QAAA,gBAE5BxE,IAAA,CAACF,OAAO;QAACqF,KAAK,EAAE,EAAG;QAACC,MAAM,EAAE,EAAG;QAACc,SAAS,EAAC,OAAO;QAAC/B,KAAK,EAAEC,MAAM,CAAC+B;MAAW,CAAE,CAAC,eAC9EnG,IAAA,CAACX,IAAI;QAAC8E,KAAK,EAAEC,MAAM,CAACa,UAAW;QAAAT,QAAA,EAAC;MAAiB,CAAM,CAAC;IAAA,CACxC,CAAC,EAGlBnD,SAAS,iBACRnB,KAAA,CAACd,IAAI;MAAC+E,KAAK,EAAEC,MAAM,CAACgC,eAAgB;MAAA5B,QAAA,gBAClCxE,IAAA,CAACN,iBAAiB;QAAC+E,IAAI,EAAC,OAAO;QAACC,KAAK,EAAE9D,MAAM,CAAC+D;MAAQ,CAAE,CAAC,eACzD3E,IAAA,CAACX,IAAI;QAAC8E,KAAK,EAAE,CAACC,MAAM,CAACiC,UAAU,EAAE;UAAE3B,KAAK,EAAE9D,MAAM,CAACiE;QAAc,CAAC,CAAE;QAAAL,QAAA,EAAC;MAEnE,CAAM,CAAC;IAAA,CACH,CACP,eAGDtE,KAAA,CAACd,IAAI;MAAC+E,KAAK,EAAEC,MAAM,CAACkC,MAAO;MAAA9B,QAAA,gBACzBtE,KAAA,CAACb,IAAI;QAAC8E,KAAK,EAAE,CAACC,MAAM,CAACmC,UAAU,EAAE;UAAE7B,KAAK,EAAE9D,MAAM,CAACiE;QAAc,CAAC,CAAE;QAAAL,QAAA,GAAC,0BACzC,EAAC,GAAG;MAAA,CACxB,CAAC,eACPxE,IAAA,CAACV,gBAAgB;QAAC0F,OAAO,EAAEA,CAAA,KAAMxF,OAAO,CAACyE,OAAO,CAAC7D,oBAAoB,CAAE;QAAAoE,QAAA,eACrExE,IAAA,CAACX,IAAI;UAAC8E,KAAK,EAAE,CAACC,MAAM,CAACoC,UAAU,EAAE;YAAE9B,KAAK,EAAE9D,MAAM,CAAC+D;UAAQ,CAAC,CAAE;UAAAH,QAAA,EAAC;QAE7D,CAAM;MAAC,CACS,CAAC;IAAA,CACf,CAAC,EAGNhE,MAAM,iBACLR,IAAA,CAACV,gBAAgB;MAAC6E,KAAK,EAAEC,MAAM,CAACqC,YAAa;MAACzB,OAAO,EAAExE,MAAO;MAAAgE,QAAA,eAC5DxE,IAAA,CAACX,IAAI;QAAC8E,KAAK,EAAE,CAACC,MAAM,CAACsC,UAAU,EAAE;UAAEhC,KAAK,EAAE9D,MAAM,CAACiE;QAAc,CAAC,CAAE;QAAAL,QAAA,EAAC;MAAM,CAAM;IAAC,CAChE,CACnB;EAAA,CACG,CAAC;AAEX,CAAC;AAED,MAAMJ,MAAM,GAAG7E,UAAU,CAACoH,MAAM,CAAC;EAC/BtC,SAAS,EAAE;IACTuC,IAAI,EAAE,CAAC;IACPC,OAAO,EAAE,EAAE;IACXC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACD7B,MAAM,EAAE;IACN4B,UAAU,EAAE,QAAQ;IACpBE,YAAY,EAAE;EAChB,CAAC;EACD3B,KAAK,EAAE;IACL4B,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,MAAM;IAClBC,SAAS,EAAE;EACb,CAAC;EACD5B,QAAQ,EAAE;IACR0B,QAAQ,EAAE,EAAE;IACZE,SAAS,EAAE,CAAC;IACZC,SAAS,EAAE;EACb,CAAC;EACD5B,WAAW,EAAE;IACXqB,OAAO,EAAE,EAAE;IACXQ,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE,CAAC;IACdR,UAAU,EAAE;EACd,CAAC;EACDlB,SAAS,EAAE;IACTiB,OAAO,EAAE,EAAE;IACXvC,eAAe,EAAE,OAAO;IACxB+C,YAAY,EAAE;EAChB,CAAC;EACDvB,MAAM,EAAE;IACNqB,SAAS,EAAE,EAAE;IACbF,QAAQ,EAAE;EACZ,CAAC;EACDlB,gBAAgB,EAAE;IAChBwB,aAAa,EAAE,KAAK;IACpBT,UAAU,EAAE,QAAQ;IACpBU,cAAc,EAAE,EAAE;IAClBrC,KAAK,EAAE;EACT,CAAC;EACDa,OAAO,EAAE;IACPY,IAAI,EAAE,CAAC;IACPxB,MAAM,EAAE;EACV,CAAC;EACDa,WAAW,EAAE;IACXwB,gBAAgB,EAAE,EAAE;IACpBR,QAAQ,EAAE;EACZ,CAAC;EACDlC,MAAM,EAAE;IACNwC,aAAa,EAAE,KAAK;IACpBT,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBW,eAAe,EAAE,EAAE;IACnBC,iBAAiB,EAAE,EAAE;IACrBN,YAAY,EAAE,EAAE;IAChBlC,KAAK,EAAE;EACT,CAAC;EACDgB,UAAU,EAAE;IACVyB,WAAW,EAAE;EACf,CAAC;EACD3C,UAAU,EAAE;IACVP,KAAK,EAAE,OAAO;IACduC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDd,eAAe,EAAE;IACfmB,aAAa,EAAE,KAAK;IACpBT,UAAU,EAAE,QAAQ;IACpBK,SAAS,EAAE;EACb,CAAC;EACDd,UAAU,EAAE;IACVwB,UAAU,EAAE,CAAC;IACbZ,QAAQ,EAAE;EACZ,CAAC;EACDX,MAAM,EAAE;IACNiB,aAAa,EAAE,KAAK;IACpBJ,SAAS,EAAE;EACb,CAAC;EACDZ,UAAU,EAAE;IACVU,QAAQ,EAAE;EACZ,CAAC;EACDT,UAAU,EAAE;IACVS,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDT,YAAY,EAAE;IACZU,SAAS,EAAE,EAAE;IACbN,OAAO,EAAE;EACX,CAAC;EACDH,UAAU,EAAE;IACVO,QAAQ,EAAE;EACZ,CAAC;EACDrC,WAAW,EAAE;IACXuC,SAAS,EAAE,EAAE;IACbF,QAAQ,EAAE;EACZ,CAAC;EACDnC,SAAS,EAAE;IACTmC,QAAQ,EAAE,EAAE;IACZG,SAAS,EAAE,QAAQ;IACnBJ,YAAY,EAAE;EAChB;AACF,CAAC,CAAC;AAEF,eAAe1G,aAAa","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useState","useEffect","useCallback","useRef","View","Text","TouchableOpacity","StyleSheet","Linking","Platform","ActivityIndicator","io","useThemeColors","useOxy","QRCode","OxyLogo","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","OXY_ACCOUNTS_SCHEME","OXY_ACCOUNTS_WEB_URL","AUTH_SESSION_EXPIRY_MS","POLLING_INTERVAL_MS","OxyAuthScreen","navigate","goBack","onAuthenticated","theme","themeValue","colors","oxyServices","signIn","authSession","setAuthSession","isLoading","setIsLoading","error","setError","isWaiting","setIsWaiting","connectionType","setConnectionType","socketRef","pollingIntervalRef","isProcessingRef","handleAuthSuccess","sessionId","current","getTokenBySession","user","getUserBySession","err","__DEV__","console","connectSocket","sessionToken","baseURL","getBaseURL","socket","transports","reconnection","reconnectionAttempts","reconnectionDelay","on","log","emit","payload","status","cleanup","message","disconnect","startPolling","setInterval","response","makeRequest","undefined","cache","authorized","clearInterval","generateAuthSession","generateSessionToken","expiresAt","Date","now","appId","OS","chars","result","i","charAt","Math","floor","random","length","getQRData","handleOpenAccounts","deepLinkUrl","webUrl","canOpen","canOpenURL","openURL","handleRefresh","style","styles","container","backgroundColor","background","children","size","color","primary","loadingText","secondaryText","errorText","button","onPress","buttonText","header","width","height","title","text","subtitle","qrContainer","inputBackground","borderColor","border","qrWrapper","value","qrHint","dividerContainer","divider","dividerText","fillColor","buttonIcon","statusContainer","statusText","footer","footerText","footerLink","cancelButton","cancelText","create","flex","padding","alignItems","justifyContent","marginBottom","fontSize","fontWeight","marginTop","textAlign","borderRadius","borderWidth","flexDirection","marginVertical","marginHorizontal","paddingVertical","paddingHorizontal","marginRight","marginLeft"],"sourceRoot":"../../../../src","sources":["ui/screens/OxyAuthScreen.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* 1. Scan QR code with Oxy Accounts app
|
|
7
7
|
* 2. Open Oxy Accounts app directly (via deep link)
|
|
8
8
|
*
|
|
9
|
+
* Uses WebSocket for real-time authorization updates (with polling fallback).
|
|
9
10
|
* The Oxy Accounts app is where users manage their cryptographic identity.
|
|
10
11
|
* This screen should NOT be used within the Accounts app itself.
|
|
11
12
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OxyAuthScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/screens/OxyAuthScreen.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"OxyAuthScreen.d.ts","sourceRoot":"","sources":["../../../../src/ui/screens/OxyAuthScreen.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA6B3D,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAoW5C,CAAC;AA2GF,eAAe,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oxyhq/services",
|
|
3
|
-
"version": "5.15.
|
|
3
|
+
"version": "5.15.9",
|
|
4
4
|
"description": "Reusable OxyHQ module to handle authentication, user management, karma system, device-based session management and more 🚀",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* 1. Scan QR code with Oxy Accounts app
|
|
7
7
|
* 2. Open Oxy Accounts app directly (via deep link)
|
|
8
8
|
*
|
|
9
|
+
* Uses WebSocket for real-time authorization updates (with polling fallback).
|
|
9
10
|
* The Oxy Accounts app is where users manage their cryptographic identity.
|
|
10
11
|
* This screen should NOT be used within the Accounts app itself.
|
|
11
12
|
*/
|
|
@@ -21,6 +22,7 @@ import {
|
|
|
21
22
|
Platform,
|
|
22
23
|
ActivityIndicator,
|
|
23
24
|
} from 'react-native';
|
|
25
|
+
import io, { type Socket } from 'socket.io-client';
|
|
24
26
|
import type { BaseScreenProps } from '../types/navigation';
|
|
25
27
|
import { useThemeColors } from '../styles';
|
|
26
28
|
import { useOxy } from '../context/OxyContext';
|
|
@@ -34,11 +36,22 @@ const OXY_ACCOUNTS_WEB_URL = 'https://accounts.oxy.so';
|
|
|
34
36
|
// Auth session expiration (5 minutes)
|
|
35
37
|
const AUTH_SESSION_EXPIRY_MS = 5 * 60 * 1000;
|
|
36
38
|
|
|
39
|
+
// Polling interval (fallback if socket fails)
|
|
40
|
+
const POLLING_INTERVAL_MS = 3000;
|
|
41
|
+
|
|
37
42
|
interface AuthSession {
|
|
38
43
|
sessionToken: string;
|
|
39
44
|
expiresAt: number;
|
|
40
45
|
}
|
|
41
46
|
|
|
47
|
+
interface AuthUpdatePayload {
|
|
48
|
+
status: 'authorized' | 'cancelled' | 'expired';
|
|
49
|
+
sessionId?: string;
|
|
50
|
+
publicKey?: string;
|
|
51
|
+
userId?: string;
|
|
52
|
+
username?: string;
|
|
53
|
+
}
|
|
54
|
+
|
|
42
55
|
const OxyAuthScreen: React.FC<BaseScreenProps> = ({
|
|
43
56
|
navigate,
|
|
44
57
|
goBack,
|
|
@@ -52,13 +65,151 @@ const OxyAuthScreen: React.FC<BaseScreenProps> = ({
|
|
|
52
65
|
const [authSession, setAuthSession] = useState<AuthSession | null>(null);
|
|
53
66
|
const [isLoading, setIsLoading] = useState(true);
|
|
54
67
|
const [error, setError] = useState<string | null>(null);
|
|
55
|
-
const [
|
|
68
|
+
const [isWaiting, setIsWaiting] = useState(false);
|
|
69
|
+
const [connectionType, setConnectionType] = useState<'socket' | 'polling'>('socket');
|
|
70
|
+
|
|
71
|
+
const socketRef = useRef<Socket | null>(null);
|
|
56
72
|
const pollingIntervalRef = useRef<ReturnType<typeof setInterval> | null>(null);
|
|
73
|
+
const isProcessingRef = useRef(false);
|
|
74
|
+
|
|
75
|
+
// Handle successful authorization
|
|
76
|
+
const handleAuthSuccess = useCallback(async (sessionId: string) => {
|
|
77
|
+
if (isProcessingRef.current) return;
|
|
78
|
+
isProcessingRef.current = true;
|
|
79
|
+
|
|
80
|
+
try {
|
|
81
|
+
// Get token and user data
|
|
82
|
+
await oxyServices.getTokenBySession(sessionId);
|
|
83
|
+
const user = await oxyServices.getUserBySession(sessionId);
|
|
84
|
+
|
|
85
|
+
if (onAuthenticated) {
|
|
86
|
+
onAuthenticated(user);
|
|
87
|
+
}
|
|
88
|
+
} catch (err) {
|
|
89
|
+
if (__DEV__) {
|
|
90
|
+
console.error('Error completing auth:', err);
|
|
91
|
+
}
|
|
92
|
+
setError('Authorization successful but failed to complete sign in. Please try again.');
|
|
93
|
+
isProcessingRef.current = false;
|
|
94
|
+
}
|
|
95
|
+
}, [oxyServices, onAuthenticated]);
|
|
96
|
+
|
|
97
|
+
// Connect to socket for real-time updates
|
|
98
|
+
const connectSocket = useCallback((sessionToken: string) => {
|
|
99
|
+
const baseURL = oxyServices.getBaseURL();
|
|
100
|
+
|
|
101
|
+
// Connect to the auth-session namespace (no authentication required)
|
|
102
|
+
const socket = io(`${baseURL}/auth-session`, {
|
|
103
|
+
transports: ['websocket', 'polling'],
|
|
104
|
+
reconnection: true,
|
|
105
|
+
reconnectionAttempts: 3,
|
|
106
|
+
reconnectionDelay: 1000,
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
socketRef.current = socket;
|
|
110
|
+
|
|
111
|
+
socket.on('connect', () => {
|
|
112
|
+
if (__DEV__) {
|
|
113
|
+
console.log('Auth socket connected');
|
|
114
|
+
}
|
|
115
|
+
// Join the room for this session token
|
|
116
|
+
socket.emit('join', sessionToken);
|
|
117
|
+
setConnectionType('socket');
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
socket.on('joined', () => {
|
|
121
|
+
if (__DEV__) {
|
|
122
|
+
console.log('Joined auth session room');
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
socket.on('auth_update', (payload: AuthUpdatePayload) => {
|
|
127
|
+
if (__DEV__) {
|
|
128
|
+
console.log('Auth update received:', payload);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
if (payload.status === 'authorized' && payload.sessionId) {
|
|
132
|
+
cleanup();
|
|
133
|
+
handleAuthSuccess(payload.sessionId);
|
|
134
|
+
} else if (payload.status === 'cancelled') {
|
|
135
|
+
cleanup();
|
|
136
|
+
setError('Authorization was denied.');
|
|
137
|
+
} else if (payload.status === 'expired') {
|
|
138
|
+
cleanup();
|
|
139
|
+
setError('Session expired. Please try again.');
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
socket.on('connect_error', (err) => {
|
|
144
|
+
if (__DEV__) {
|
|
145
|
+
console.log('Socket connection error, falling back to polling:', err.message);
|
|
146
|
+
}
|
|
147
|
+
// Fall back to polling if socket fails
|
|
148
|
+
socket.disconnect();
|
|
149
|
+
startPolling(sessionToken);
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
socket.on('disconnect', () => {
|
|
153
|
+
if (__DEV__) {
|
|
154
|
+
console.log('Auth socket disconnected');
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}, [oxyServices, handleAuthSuccess]);
|
|
158
|
+
|
|
159
|
+
// Start polling for authorization (fallback)
|
|
160
|
+
const startPolling = useCallback((sessionToken: string) => {
|
|
161
|
+
setConnectionType('polling');
|
|
162
|
+
|
|
163
|
+
pollingIntervalRef.current = setInterval(async () => {
|
|
164
|
+
if (isProcessingRef.current) return;
|
|
165
|
+
|
|
166
|
+
try {
|
|
167
|
+
const response = await oxyServices.makeRequest<{
|
|
168
|
+
authorized: boolean;
|
|
169
|
+
sessionId?: string;
|
|
170
|
+
publicKey?: string;
|
|
171
|
+
status?: string;
|
|
172
|
+
}>('GET', `/api/auth/session/status/${sessionToken}`, undefined, { cache: false });
|
|
173
|
+
|
|
174
|
+
if (response.authorized && response.sessionId) {
|
|
175
|
+
cleanup();
|
|
176
|
+
handleAuthSuccess(response.sessionId);
|
|
177
|
+
} else if (response.status === 'cancelled') {
|
|
178
|
+
cleanup();
|
|
179
|
+
setError('Authorization was denied.');
|
|
180
|
+
} else if (response.status === 'expired') {
|
|
181
|
+
cleanup();
|
|
182
|
+
setError('Session expired. Please try again.');
|
|
183
|
+
}
|
|
184
|
+
} catch (err) {
|
|
185
|
+
// Silent fail for polling - will retry
|
|
186
|
+
if (__DEV__) {
|
|
187
|
+
console.log('Auth polling error:', err);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}, POLLING_INTERVAL_MS);
|
|
191
|
+
}, [oxyServices, handleAuthSuccess]);
|
|
192
|
+
|
|
193
|
+
// Cleanup socket and polling
|
|
194
|
+
const cleanup = useCallback(() => {
|
|
195
|
+
setIsWaiting(false);
|
|
196
|
+
|
|
197
|
+
if (socketRef.current) {
|
|
198
|
+
socketRef.current.disconnect();
|
|
199
|
+
socketRef.current = null;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
if (pollingIntervalRef.current) {
|
|
203
|
+
clearInterval(pollingIntervalRef.current);
|
|
204
|
+
pollingIntervalRef.current = null;
|
|
205
|
+
}
|
|
206
|
+
}, []);
|
|
57
207
|
|
|
58
208
|
// Generate a new auth session
|
|
59
209
|
const generateAuthSession = useCallback(async () => {
|
|
60
210
|
setIsLoading(true);
|
|
61
211
|
setError(null);
|
|
212
|
+
isProcessingRef.current = false;
|
|
62
213
|
|
|
63
214
|
try {
|
|
64
215
|
// Generate a unique session token for this auth request
|
|
@@ -66,7 +217,6 @@ const OxyAuthScreen: React.FC<BaseScreenProps> = ({
|
|
|
66
217
|
const expiresAt = Date.now() + AUTH_SESSION_EXPIRY_MS;
|
|
67
218
|
|
|
68
219
|
// Register the auth session with the server
|
|
69
|
-
// The server will associate this token with the user when they authorize in Accounts
|
|
70
220
|
await oxyServices.makeRequest('POST', '/api/auth/session/create', {
|
|
71
221
|
sessionToken,
|
|
72
222
|
expiresAt,
|
|
@@ -74,13 +224,16 @@ const OxyAuthScreen: React.FC<BaseScreenProps> = ({
|
|
|
74
224
|
}, { cache: false });
|
|
75
225
|
|
|
76
226
|
setAuthSession({ sessionToken, expiresAt });
|
|
77
|
-
|
|
227
|
+
setIsWaiting(true);
|
|
228
|
+
|
|
229
|
+
// Try socket first, will fall back to polling if needed
|
|
230
|
+
connectSocket(sessionToken);
|
|
78
231
|
} catch (err: any) {
|
|
79
232
|
setError(err.message || 'Failed to create auth session');
|
|
80
233
|
} finally {
|
|
81
234
|
setIsLoading(false);
|
|
82
235
|
}
|
|
83
|
-
}, [oxyServices]);
|
|
236
|
+
}, [oxyServices, connectSocket]);
|
|
84
237
|
|
|
85
238
|
// Generate a random session token
|
|
86
239
|
const generateSessionToken = (): string => {
|
|
@@ -92,54 +245,12 @@ const OxyAuthScreen: React.FC<BaseScreenProps> = ({
|
|
|
92
245
|
return result;
|
|
93
246
|
};
|
|
94
247
|
|
|
95
|
-
// Start polling for authorization
|
|
96
|
-
const startPolling = useCallback((sessionToken: string) => {
|
|
97
|
-
setIsPolling(true);
|
|
98
|
-
|
|
99
|
-
pollingIntervalRef.current = setInterval(async () => {
|
|
100
|
-
try {
|
|
101
|
-
const response = await oxyServices.makeRequest<{
|
|
102
|
-
authorized: boolean;
|
|
103
|
-
sessionId?: string;
|
|
104
|
-
publicKey?: string;
|
|
105
|
-
}>('GET', `/api/auth/session/status/${sessionToken}`, undefined, { cache: false });
|
|
106
|
-
|
|
107
|
-
if (response.authorized && response.sessionId) {
|
|
108
|
-
// Authorization successful!
|
|
109
|
-
stopPolling();
|
|
110
|
-
|
|
111
|
-
// Get token and user data
|
|
112
|
-
await oxyServices.getTokenBySession(response.sessionId);
|
|
113
|
-
const user = await oxyServices.getUserBySession(response.sessionId);
|
|
114
|
-
|
|
115
|
-
if (onAuthenticated) {
|
|
116
|
-
onAuthenticated(user);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
} catch (err) {
|
|
120
|
-
// Silent fail for polling - will retry
|
|
121
|
-
if (__DEV__) {
|
|
122
|
-
console.log('Auth polling error:', err);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}, 2000); // Poll every 2 seconds
|
|
126
|
-
}, [oxyServices, onAuthenticated]);
|
|
127
|
-
|
|
128
|
-
// Stop polling
|
|
129
|
-
const stopPolling = useCallback(() => {
|
|
130
|
-
setIsPolling(false);
|
|
131
|
-
if (pollingIntervalRef.current) {
|
|
132
|
-
clearInterval(pollingIntervalRef.current);
|
|
133
|
-
pollingIntervalRef.current = null;
|
|
134
|
-
}
|
|
135
|
-
}, []);
|
|
136
|
-
|
|
137
248
|
// Clean up on unmount
|
|
138
249
|
useEffect(() => {
|
|
139
250
|
return () => {
|
|
140
|
-
|
|
251
|
+
cleanup();
|
|
141
252
|
};
|
|
142
|
-
}, [
|
|
253
|
+
}, [cleanup]);
|
|
143
254
|
|
|
144
255
|
// Initialize auth session
|
|
145
256
|
useEffect(() => {
|
|
@@ -149,11 +260,11 @@ const OxyAuthScreen: React.FC<BaseScreenProps> = ({
|
|
|
149
260
|
// Check if session expired
|
|
150
261
|
useEffect(() => {
|
|
151
262
|
if (authSession && Date.now() > authSession.expiresAt) {
|
|
152
|
-
|
|
263
|
+
cleanup();
|
|
153
264
|
setAuthSession(null);
|
|
154
265
|
setError('Session expired. Please try again.');
|
|
155
266
|
}
|
|
156
|
-
}, [authSession,
|
|
267
|
+
}, [authSession, cleanup]);
|
|
157
268
|
|
|
158
269
|
// Build the QR code data
|
|
159
270
|
const getQRData = (): string => {
|
|
@@ -191,9 +302,9 @@ const OxyAuthScreen: React.FC<BaseScreenProps> = ({
|
|
|
191
302
|
|
|
192
303
|
// Refresh session
|
|
193
304
|
const handleRefresh = useCallback(() => {
|
|
194
|
-
|
|
305
|
+
cleanup();
|
|
195
306
|
generateAuthSession();
|
|
196
|
-
}, [generateAuthSession,
|
|
307
|
+
}, [generateAuthSession, cleanup]);
|
|
197
308
|
|
|
198
309
|
if (isLoading) {
|
|
199
310
|
return (
|
|
@@ -246,24 +357,29 @@ const OxyAuthScreen: React.FC<BaseScreenProps> = ({
|
|
|
246
357
|
</Text>
|
|
247
358
|
</View>
|
|
248
359
|
|
|
249
|
-
{/* Divider */}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
360
|
+
{/* Divider and Open Accounts Button - Only show on native platforms */}
|
|
361
|
+
{Platform.OS !== 'web' && (
|
|
362
|
+
<>
|
|
363
|
+
{/* Divider */}
|
|
364
|
+
<View style={styles.dividerContainer}>
|
|
365
|
+
<View style={[styles.divider, { backgroundColor: colors.border }]} />
|
|
366
|
+
<Text style={[styles.dividerText, { color: colors.secondaryText }]}>or</Text>
|
|
367
|
+
<View style={[styles.divider, { backgroundColor: colors.border }]} />
|
|
368
|
+
</View>
|
|
369
|
+
|
|
370
|
+
{/* Open Accounts Button */}
|
|
371
|
+
<TouchableOpacity
|
|
372
|
+
style={[styles.button, { backgroundColor: colors.primary }]}
|
|
373
|
+
onPress={handleOpenAccounts}
|
|
374
|
+
>
|
|
375
|
+
<OxyLogo width={20} height={20} fillColor="white" style={styles.buttonIcon} />
|
|
376
|
+
<Text style={styles.buttonText}>Open Oxy Accounts</Text>
|
|
377
|
+
</TouchableOpacity>
|
|
378
|
+
</>
|
|
379
|
+
)}
|
|
264
380
|
|
|
265
381
|
{/* Status */}
|
|
266
|
-
{
|
|
382
|
+
{isWaiting && (
|
|
267
383
|
<View style={styles.statusContainer}>
|
|
268
384
|
<ActivityIndicator size="small" color={colors.primary} />
|
|
269
385
|
<Text style={[styles.statusText, { color: colors.secondaryText }]}>
|