@oxyhq/services 10.4.0 → 11.0.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/ui/components/AnotherDeviceQR.js +121 -0
- package/lib/commonjs/ui/components/AnotherDeviceQR.js.map +1 -0
- package/lib/commonjs/ui/components/SignInModal.js +145 -356
- package/lib/commonjs/ui/components/SignInModal.js.map +1 -1
- package/lib/commonjs/ui/hooks/useOxyAuthSession.js +458 -0
- package/lib/commonjs/ui/hooks/useOxyAuthSession.js.map +1 -0
- package/lib/commonjs/ui/screens/OxyAuthScreen.js +62 -460
- package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/module/ui/components/AnotherDeviceQR.js +116 -0
- package/lib/module/ui/components/AnotherDeviceQR.js.map +1 -0
- package/lib/module/ui/components/SignInModal.js +149 -358
- package/lib/module/ui/components/SignInModal.js.map +1 -1
- package/lib/module/ui/hooks/useOxyAuthSession.js +452 -0
- package/lib/module/ui/hooks/useOxyAuthSession.js.map +1 -0
- package/lib/module/ui/screens/OxyAuthScreen.js +62 -460
- package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts +24 -0
- package/lib/typescript/commonjs/ui/components/AnotherDeviceQR.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/SignInModal.d.ts +10 -5
- package/lib/typescript/commonjs/ui/components/SignInModal.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts +83 -0
- package/lib/typescript/commonjs/ui/hooks/useOxyAuthSession.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts +12 -8
- package/lib/typescript/commonjs/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts +24 -0
- package/lib/typescript/module/ui/components/AnotherDeviceQR.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/SignInModal.d.ts +10 -5
- package/lib/typescript/module/ui/components/SignInModal.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
- package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts +83 -0
- package/lib/typescript/module/ui/hooks/useOxyAuthSession.d.ts.map +1 -0
- package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts +12 -8
- package/lib/typescript/module/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/package.json +21 -33
- package/src/ui/components/AnotherDeviceQR.tsx +111 -0
- package/src/ui/components/SignInModal.tsx +142 -381
- package/src/ui/hooks/useOxyAuthSession.ts +556 -0
- package/src/ui/screens/OxyAuthScreen.tsx +61 -506
|
@@ -1,96 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* OxyAuthScreen - Sign in with Oxy
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
4
|
+
* OxyAuthScreen - Sign in with Oxy (native bottom-sheet container)
|
|
5
|
+
*
|
|
6
|
+
* Used by OTHER apps in the Oxy ecosystem to authenticate users. The primary
|
|
7
|
+
* action is the one-tap "Continue with Oxy" approval flow (opens the Oxy Auth
|
|
8
|
+
* web flow with a deep-link `redirect_uri` so the app→app return path can
|
|
9
|
+
* complete the sign-in). The QR code is demoted to a collapsed "Sign in on
|
|
10
|
+
* another device" disclosure — you can't scan your own screen.
|
|
11
|
+
*
|
|
12
|
+
* ALL of the auth-session machinery (session-token creation, QR data, socket +
|
|
13
|
+
* polling, the native deep-link return path, waiting/error/retry state, the
|
|
14
|
+
* open-auth handler, and cleanup) lives in the shared `useOxyAuthSession` hook,
|
|
15
|
+
* which the web `SignInModal` also consumes — neither container re-implements
|
|
16
|
+
* the transport. The Oxy Accounts app is where users manage their cryptographic
|
|
17
|
+
* identity; this screen should NOT be used within the Accounts app itself.
|
|
14
18
|
*/
|
|
15
19
|
|
|
16
|
-
import {
|
|
17
|
-
import { View, Text, TouchableOpacity, StyleSheet, Linking, Platform } from 'react-native';
|
|
18
|
-
import io from 'socket.io-client';
|
|
20
|
+
import { View, Text, TouchableOpacity, StyleSheet, Linking } from 'react-native';
|
|
19
21
|
import { useTheme } from '@oxyhq/bloom/theme';
|
|
20
22
|
import { Button } from '@oxyhq/bloom/button';
|
|
21
23
|
import { Loading } from '@oxyhq/bloom/loading';
|
|
22
24
|
import { useOxy } from "../context/OxyContext.js";
|
|
23
|
-
import QRCode from 'react-native-qrcode-svg';
|
|
24
25
|
import OxyLogo from "../components/OxyLogo.js";
|
|
25
|
-
import
|
|
26
|
-
import {
|
|
26
|
+
import AnotherDeviceQR from "../components/AnotherDeviceQR.js";
|
|
27
|
+
import { useOxyAuthSession, OXY_ACCOUNTS_WEB_URL } from "../hooks/useOxyAuthSession.js";
|
|
27
28
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
28
|
-
const debug = createDebugLogger('OxyAuthScreen');
|
|
29
|
-
const OXY_ACCOUNTS_WEB_URL = 'https://accounts.oxy.so';
|
|
30
|
-
const OXY_AUTH_WEB_URL = 'https://auth.oxy.so';
|
|
31
|
-
|
|
32
|
-
// Auth session expiration (5 minutes)
|
|
33
|
-
const AUTH_SESSION_EXPIRY_MS = 5 * 60 * 1000;
|
|
34
|
-
|
|
35
|
-
// Polling interval (fallback if socket fails)
|
|
36
|
-
const POLLING_INTERVAL_MS = 3000;
|
|
37
|
-
const resolveAuthWebBaseUrl = (baseURL, authWebUrl) => {
|
|
38
|
-
if (authWebUrl) {
|
|
39
|
-
return authWebUrl;
|
|
40
|
-
}
|
|
41
|
-
try {
|
|
42
|
-
const url = new URL(baseURL);
|
|
43
|
-
if (url.port === '3001') {
|
|
44
|
-
url.port = '3002';
|
|
45
|
-
return url.origin;
|
|
46
|
-
}
|
|
47
|
-
if (url.hostname.startsWith('api.')) {
|
|
48
|
-
url.hostname = `auth.${url.hostname.slice(4)}`;
|
|
49
|
-
return url.origin;
|
|
50
|
-
}
|
|
51
|
-
} catch {
|
|
52
|
-
// Ignore parsing errors, fall back to default.
|
|
53
|
-
}
|
|
54
|
-
return OXY_AUTH_WEB_URL;
|
|
55
|
-
};
|
|
56
|
-
const resolveAuthRedirectUri = async authRedirectUri => {
|
|
57
|
-
if (authRedirectUri) {
|
|
58
|
-
return authRedirectUri;
|
|
59
|
-
}
|
|
60
|
-
try {
|
|
61
|
-
const initialUrl = await Linking.getInitialURL();
|
|
62
|
-
if (!initialUrl) {
|
|
63
|
-
return null;
|
|
64
|
-
}
|
|
65
|
-
const parsed = new URL(initialUrl);
|
|
66
|
-
parsed.search = '';
|
|
67
|
-
parsed.hash = '';
|
|
68
|
-
return parsed.toString();
|
|
69
|
-
} catch {
|
|
70
|
-
return null;
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
const getRedirectParams = url => {
|
|
74
|
-
try {
|
|
75
|
-
const parsed = new URL(url);
|
|
76
|
-
const sessionId = parsed.searchParams.get('session_id') ?? undefined;
|
|
77
|
-
const error = parsed.searchParams.get('error') ?? undefined;
|
|
78
|
-
if (!sessionId && !error) {
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
return {
|
|
82
|
-
sessionId,
|
|
83
|
-
error
|
|
84
|
-
};
|
|
85
|
-
} catch {
|
|
86
|
-
return null;
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
29
|
const OxyAuthScreen = ({
|
|
90
|
-
navigate,
|
|
91
30
|
goBack,
|
|
92
|
-
onAuthenticated
|
|
93
|
-
theme
|
|
31
|
+
onAuthenticated
|
|
94
32
|
}) => {
|
|
95
33
|
const bloomTheme = useTheme();
|
|
96
34
|
const {
|
|
@@ -98,307 +36,16 @@ const OxyAuthScreen = ({
|
|
|
98
36
|
switchSession,
|
|
99
37
|
clientId
|
|
100
38
|
} = useOxy();
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
// Handle successful authorization.
|
|
112
|
-
//
|
|
113
|
-
// The auth-session socket / poll (or deep-link return) hands us the
|
|
114
|
-
// authorized `sessionId`. Before any session-management code can touch it we
|
|
115
|
-
// MUST first exchange the secret `sessionToken` (held only by this client,
|
|
116
|
-
// generated for THIS flow) for the first access token via
|
|
117
|
-
// `claimSessionByToken` — the device-flow equivalent of OAuth's
|
|
118
|
-
// code-for-token exchange (RFC 8628 §3.4).
|
|
119
|
-
//
|
|
120
|
-
// Without that exchange the SDK has no bearer token — the session is
|
|
121
|
-
// authorized server-side but the app never becomes authenticated and the
|
|
122
|
-
// sheet sits "Waiting for authorization..." forever. Once
|
|
123
|
-
// `claimSessionByToken` plants the tokens in the HttpService, the rest of the
|
|
124
|
-
// session wiring flows through the normal `switchSession` path. This mirrors
|
|
125
|
-
// `SignInModal`'s web flow exactly.
|
|
126
|
-
const handleAuthSuccess = useCallback(async (sessionId, sessionToken) => {
|
|
127
|
-
if (isProcessingRef.current) return;
|
|
128
|
-
isProcessingRef.current = true;
|
|
129
|
-
try {
|
|
130
|
-
// Claim the first access token with the secret sessionToken, then
|
|
131
|
-
// hydrate the session. The claim step is what the native screen was
|
|
132
|
-
// previously missing — see `completeDeviceFlowSignIn`. `switchSession`
|
|
133
|
-
// is always provided by the context here; the helper requires it.
|
|
134
|
-
if (!switchSession) {
|
|
135
|
-
throw new Error('Session management unavailable');
|
|
136
|
-
}
|
|
137
|
-
const user = await completeDeviceFlowSignIn({
|
|
138
|
-
oxyServices,
|
|
139
|
-
sessionId,
|
|
140
|
-
sessionToken,
|
|
141
|
-
switchSession
|
|
142
|
-
});
|
|
143
|
-
if (onAuthenticated) {
|
|
144
|
-
onAuthenticated(user);
|
|
145
|
-
}
|
|
146
|
-
} catch (err) {
|
|
147
|
-
debug.error('Error completing auth:', err);
|
|
148
|
-
setError('Authorization successful but failed to complete sign in. Please try again.');
|
|
149
|
-
isProcessingRef.current = false;
|
|
150
|
-
}
|
|
151
|
-
}, [oxyServices, switchSession, onAuthenticated]);
|
|
152
|
-
|
|
153
|
-
// Connect to socket for real-time updates
|
|
154
|
-
const connectSocket = useCallback(sessionToken => {
|
|
155
|
-
const baseURL = oxyServices.getBaseURL();
|
|
156
|
-
|
|
157
|
-
// Connect to the auth-session namespace (no authentication required)
|
|
158
|
-
const socket = io(`${baseURL}/auth-session`, {
|
|
159
|
-
transports: ['websocket', 'polling'],
|
|
160
|
-
reconnection: true,
|
|
161
|
-
reconnectionAttempts: 3,
|
|
162
|
-
reconnectionDelay: 1000
|
|
163
|
-
});
|
|
164
|
-
socketRef.current = socket;
|
|
165
|
-
socket.on('connect', () => {
|
|
166
|
-
debug.log('Auth socket connected');
|
|
167
|
-
// Join the room for this session token
|
|
168
|
-
socket.emit('join', sessionToken);
|
|
169
|
-
setConnectionType('socket');
|
|
170
|
-
});
|
|
171
|
-
socket.on('joined', () => {
|
|
172
|
-
debug.log('Joined auth session room');
|
|
173
|
-
});
|
|
174
|
-
socket.on('auth_update', payload => {
|
|
175
|
-
debug.log('Auth update received:', payload);
|
|
176
|
-
if (payload.status === 'authorized' && payload.sessionId) {
|
|
177
|
-
cleanup();
|
|
178
|
-
// `sessionToken` is this flow's secret credential (in closure) — pass
|
|
179
|
-
// it through so `handleAuthSuccess` can claim the first access token.
|
|
180
|
-
handleAuthSuccess(payload.sessionId, sessionToken);
|
|
181
|
-
} else if (payload.status === 'cancelled') {
|
|
182
|
-
cleanup();
|
|
183
|
-
setError('Authorization was denied.');
|
|
184
|
-
} else if (payload.status === 'expired') {
|
|
185
|
-
cleanup();
|
|
186
|
-
setError('Session expired. Please try again.');
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
socket.on('connect_error', err => {
|
|
190
|
-
debug.log('Socket connection error, falling back to polling:', err instanceof Error ? err.message : null);
|
|
191
|
-
// Realtime transport errored — reflect the honest connection state. The
|
|
192
|
-
// poll is already running (started unconditionally in
|
|
193
|
-
// `generateAuthSession`), so `startPolling` here is a no-op backstop.
|
|
194
|
-
socket.disconnect();
|
|
195
|
-
setConnectionType('polling');
|
|
196
|
-
startPolling(sessionToken);
|
|
197
|
-
});
|
|
198
|
-
socket.on('disconnect', () => {
|
|
199
|
-
debug.log('Auth socket disconnected');
|
|
200
|
-
});
|
|
201
|
-
}, [oxyServices, handleAuthSuccess]);
|
|
202
|
-
|
|
203
|
-
// Start polling for authorization.
|
|
204
|
-
//
|
|
205
|
-
// Idempotent: if a poll interval is already running this is a no-op, so the
|
|
206
|
-
// `connect_error` path (which also calls this) cannot stack a second interval
|
|
207
|
-
// on top of the always-on poll started in `generateAuthSession`.
|
|
208
|
-
const startPolling = useCallback(sessionToken => {
|
|
209
|
-
if (pollingIntervalRef.current) return;
|
|
210
|
-
pollingIntervalRef.current = setInterval(async () => {
|
|
211
|
-
if (isProcessingRef.current) return;
|
|
212
|
-
try {
|
|
213
|
-
const response = await oxyServices.makeRequest('GET', `/auth/session/status/${sessionToken}`, undefined, {
|
|
214
|
-
cache: false
|
|
215
|
-
});
|
|
216
|
-
if (response.authorized && response.sessionId) {
|
|
217
|
-
cleanup();
|
|
218
|
-
// Pass the original sessionToken (in closure) through; the claim
|
|
219
|
-
// exchange needs it to mint the first access token.
|
|
220
|
-
handleAuthSuccess(response.sessionId, sessionToken);
|
|
221
|
-
} else if (response.status === 'cancelled') {
|
|
222
|
-
cleanup();
|
|
223
|
-
setError('Authorization was denied.');
|
|
224
|
-
} else if (response.status === 'expired') {
|
|
225
|
-
cleanup();
|
|
226
|
-
setError('Session expired. Please try again.');
|
|
227
|
-
}
|
|
228
|
-
} catch (err) {
|
|
229
|
-
// Silent fail for polling - will retry
|
|
230
|
-
debug.log('Auth polling error:', err);
|
|
231
|
-
}
|
|
232
|
-
}, POLLING_INTERVAL_MS);
|
|
233
|
-
}, [oxyServices, handleAuthSuccess]);
|
|
234
|
-
|
|
235
|
-
// Cleanup socket and polling
|
|
236
|
-
const cleanup = useCallback(() => {
|
|
237
|
-
setIsWaiting(false);
|
|
238
|
-
if (socketRef.current) {
|
|
239
|
-
socketRef.current.disconnect();
|
|
240
|
-
socketRef.current = null;
|
|
241
|
-
}
|
|
242
|
-
if (pollingIntervalRef.current) {
|
|
243
|
-
clearInterval(pollingIntervalRef.current);
|
|
244
|
-
pollingIntervalRef.current = null;
|
|
245
|
-
}
|
|
246
|
-
}, []);
|
|
247
|
-
|
|
248
|
-
// Generate a new auth session
|
|
249
|
-
const generateAuthSession = useCallback(async () => {
|
|
250
|
-
setIsLoading(true);
|
|
251
|
-
setError(null);
|
|
252
|
-
isProcessingRef.current = false;
|
|
253
|
-
|
|
254
|
-
// The cross-app device sign-in flow identifies the requesting app by its
|
|
255
|
-
// real registered OAuth client id (ApplicationCredential publicKey).
|
|
256
|
-
// Without it the API cannot resolve the consent identity, so we fail fast
|
|
257
|
-
// with a clear configuration error rather than creating a session the
|
|
258
|
-
// server would reject.
|
|
259
|
-
if (!clientId) {
|
|
260
|
-
setError('This app is not configured for sign-in (missing clientId).');
|
|
261
|
-
setIsLoading(false);
|
|
262
|
-
return;
|
|
263
|
-
}
|
|
264
|
-
try {
|
|
265
|
-
// Generate a unique session token for this auth request
|
|
266
|
-
const sessionToken = generateSessionToken();
|
|
267
|
-
const expiresAt = Date.now() + AUTH_SESSION_EXPIRY_MS;
|
|
268
|
-
|
|
269
|
-
// Register the auth session with the server
|
|
270
|
-
await oxyServices.makeRequest('POST', '/auth/session/create', {
|
|
271
|
-
sessionToken,
|
|
272
|
-
expiresAt,
|
|
273
|
-
clientId
|
|
274
|
-
}, {
|
|
275
|
-
cache: false
|
|
276
|
-
});
|
|
277
|
-
setAuthSession({
|
|
278
|
-
sessionToken,
|
|
279
|
-
expiresAt
|
|
280
|
-
});
|
|
281
|
-
setIsWaiting(true);
|
|
282
|
-
|
|
283
|
-
// Socket is the fast path; the poll is a transport-independent backstop
|
|
284
|
-
// that guarantees completion even if the socket connects but silently
|
|
285
|
-
// never delivers auth_update (RN transport / idle-timeout).
|
|
286
|
-
connectSocket(sessionToken);
|
|
287
|
-
startPolling(sessionToken);
|
|
288
|
-
} catch (err) {
|
|
289
|
-
setError((err instanceof Error ? err.message : null) || 'Failed to create auth session');
|
|
290
|
-
} finally {
|
|
291
|
-
setIsLoading(false);
|
|
292
|
-
}
|
|
293
|
-
}, [oxyServices, connectSocket, startPolling, clientId]);
|
|
294
|
-
|
|
295
|
-
// Generate a random session token
|
|
296
|
-
const generateSessionToken = () => {
|
|
297
|
-
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
298
|
-
let result = '';
|
|
299
|
-
for (let i = 0; i < 32; i++) {
|
|
300
|
-
result += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
301
|
-
}
|
|
302
|
-
return result;
|
|
303
|
-
};
|
|
304
|
-
|
|
305
|
-
// Clean up on unmount
|
|
306
|
-
useEffect(() => {
|
|
307
|
-
return () => {
|
|
308
|
-
cleanup();
|
|
309
|
-
};
|
|
310
|
-
}, [cleanup]);
|
|
311
|
-
|
|
312
|
-
// Initialize auth session
|
|
313
|
-
useEffect(() => {
|
|
314
|
-
generateAuthSession();
|
|
315
|
-
}, []);
|
|
316
|
-
|
|
317
|
-
// Check if session expired
|
|
318
|
-
useEffect(() => {
|
|
319
|
-
if (authSession && Date.now() > authSession.expiresAt) {
|
|
320
|
-
cleanup();
|
|
321
|
-
setAuthSession(null);
|
|
322
|
-
setError('Session expired. Please try again.');
|
|
323
|
-
}
|
|
324
|
-
}, [authSession, cleanup]);
|
|
325
|
-
|
|
326
|
-
// Build the QR code data
|
|
327
|
-
const getQRData = () => {
|
|
328
|
-
if (!authSession) return '';
|
|
329
|
-
|
|
330
|
-
// Format: oxyauth://{sessionToken}
|
|
331
|
-
return `oxyauth://${authSession.sessionToken}`;
|
|
332
|
-
};
|
|
333
|
-
|
|
334
|
-
// Open Oxy Auth web flow
|
|
335
|
-
const handleOpenAuth = useCallback(async () => {
|
|
336
|
-
if (!authSession) return;
|
|
337
|
-
const authBaseUrl = resolveAuthWebBaseUrl(oxyServices.getBaseURL(), oxyServices.config?.authWebUrl);
|
|
338
|
-
const webUrl = new URL('/authorize', authBaseUrl);
|
|
339
|
-
webUrl.searchParams.set('token', authSession.sessionToken);
|
|
340
|
-
const redirectUri = await resolveAuthRedirectUri(oxyServices.config?.authRedirectUri);
|
|
341
|
-
if (redirectUri) {
|
|
342
|
-
webUrl.searchParams.set('redirect_uri', redirectUri);
|
|
343
|
-
}
|
|
344
|
-
try {
|
|
345
|
-
await Linking.openURL(webUrl.toString());
|
|
346
|
-
} catch (err) {
|
|
347
|
-
setError('Unable to open Oxy Auth. Please try again or use the QR code.');
|
|
348
|
-
}
|
|
349
|
-
}, [authSession, oxyServices]);
|
|
350
|
-
|
|
351
|
-
// Refresh session
|
|
352
|
-
const handleRefresh = useCallback(() => {
|
|
353
|
-
cleanup();
|
|
354
|
-
generateAuthSession();
|
|
355
|
-
}, [generateAuthSession, cleanup]);
|
|
356
|
-
const handleAuthRedirect = useCallback(url => {
|
|
357
|
-
const params = getRedirectParams(url);
|
|
358
|
-
if (!params) {
|
|
359
|
-
return;
|
|
360
|
-
}
|
|
361
|
-
if (params.error) {
|
|
362
|
-
cleanup();
|
|
363
|
-
setError('Authorization was denied.');
|
|
364
|
-
return;
|
|
365
|
-
}
|
|
366
|
-
if (params.sessionId) {
|
|
367
|
-
// The deep-link return carries only `session_id` — the secret
|
|
368
|
-
// `sessionToken` for this flow lives in component state (generated in
|
|
369
|
-
// `generateAuthSession`). Without it we cannot claim the first access
|
|
370
|
-
// token, so the flow would 401 in `handleAuthSuccess`. If it is somehow
|
|
371
|
-
// unavailable, fall through to the socket/poll path (which carries the
|
|
372
|
-
// token in closure) rather than attempting an unauthenticated claim.
|
|
373
|
-
const flowSessionToken = authSession?.sessionToken;
|
|
374
|
-
if (!flowSessionToken) {
|
|
375
|
-
return;
|
|
376
|
-
}
|
|
377
|
-
cleanup();
|
|
378
|
-
handleAuthSuccess(params.sessionId, flowSessionToken);
|
|
379
|
-
}
|
|
380
|
-
}, [authSession, cleanup, handleAuthSuccess]);
|
|
381
|
-
useEffect(() => {
|
|
382
|
-
if (Platform.OS === 'web') {
|
|
383
|
-
return;
|
|
384
|
-
}
|
|
385
|
-
const subscription = Linking.addEventListener('url', ({
|
|
386
|
-
url
|
|
387
|
-
}) => {
|
|
388
|
-
linkingHandledRef.current = true;
|
|
389
|
-
handleAuthRedirect(url);
|
|
390
|
-
});
|
|
391
|
-
Linking.getInitialURL().then(url => {
|
|
392
|
-
if (url && !linkingHandledRef.current) {
|
|
393
|
-
handleAuthRedirect(url);
|
|
394
|
-
}
|
|
395
|
-
}).catch(() => {
|
|
396
|
-
// Ignore linking errors; auth will still resolve via socket/polling.
|
|
397
|
-
});
|
|
398
|
-
return () => {
|
|
399
|
-
subscription.remove();
|
|
400
|
-
};
|
|
401
|
-
}, [handleAuthRedirect]);
|
|
39
|
+
const {
|
|
40
|
+
qrData,
|
|
41
|
+
isLoading,
|
|
42
|
+
error,
|
|
43
|
+
isWaiting,
|
|
44
|
+
openAuthApproval,
|
|
45
|
+
retry
|
|
46
|
+
} = useOxyAuthSession(oxyServices, clientId, switchSession, {
|
|
47
|
+
onSignedIn: onAuthenticated
|
|
48
|
+
});
|
|
402
49
|
if (isLoading) {
|
|
403
50
|
return /*#__PURE__*/_jsxs(View, {
|
|
404
51
|
style: [styles.container, {
|
|
@@ -424,11 +71,8 @@ const OxyAuthScreen = ({
|
|
|
424
71
|
children: error
|
|
425
72
|
}), /*#__PURE__*/_jsx(Button, {
|
|
426
73
|
variant: "primary",
|
|
427
|
-
onPress:
|
|
428
|
-
style:
|
|
429
|
-
width: '100%',
|
|
430
|
-
borderRadius: 12
|
|
431
|
-
},
|
|
74
|
+
onPress: retry,
|
|
75
|
+
style: styles.primaryButton,
|
|
432
76
|
children: "Try Again"
|
|
433
77
|
})]
|
|
434
78
|
});
|
|
@@ -445,84 +89,57 @@ const OxyAuthScreen = ({
|
|
|
445
89
|
}), /*#__PURE__*/_jsx(Text, {
|
|
446
90
|
style: styles.title,
|
|
447
91
|
className: "text-foreground",
|
|
448
|
-
children: "Sign in
|
|
92
|
+
children: "Sign in to Oxy"
|
|
449
93
|
}), /*#__PURE__*/_jsx(Text, {
|
|
450
94
|
style: styles.subtitle,
|
|
451
95
|
className: "text-muted-foreground",
|
|
452
|
-
children: "
|
|
453
|
-
})]
|
|
454
|
-
}), /*#__PURE__*/_jsxs(View, {
|
|
455
|
-
style: styles.qrContainer,
|
|
456
|
-
className: "bg-secondary border-border",
|
|
457
|
-
children: [/*#__PURE__*/_jsx(View, {
|
|
458
|
-
style: styles.qrWrapper,
|
|
459
|
-
children: /*#__PURE__*/_jsx(QRCode, {
|
|
460
|
-
value: getQRData(),
|
|
461
|
-
size: 200,
|
|
462
|
-
backgroundColor: "white",
|
|
463
|
-
color: "black"
|
|
464
|
-
})
|
|
465
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
466
|
-
style: styles.qrHint,
|
|
467
|
-
className: "text-muted-foreground",
|
|
468
|
-
children: "Scan with Oxy Accounts app"
|
|
469
|
-
})]
|
|
470
|
-
}), /*#__PURE__*/_jsxs(View, {
|
|
471
|
-
style: styles.dividerContainer,
|
|
472
|
-
children: [/*#__PURE__*/_jsx(View, {
|
|
473
|
-
style: styles.divider,
|
|
474
|
-
className: "bg-border"
|
|
475
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
476
|
-
style: styles.dividerText,
|
|
477
|
-
className: "text-muted-foreground",
|
|
478
|
-
children: "or"
|
|
479
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
480
|
-
style: styles.divider,
|
|
481
|
-
className: "bg-border"
|
|
96
|
+
children: "Continue with your Oxy identity to sign in securely"
|
|
482
97
|
})]
|
|
483
98
|
}), /*#__PURE__*/_jsx(Button, {
|
|
484
99
|
variant: "primary",
|
|
485
|
-
onPress:
|
|
100
|
+
onPress: openAuthApproval,
|
|
486
101
|
icon: /*#__PURE__*/_jsx(OxyLogo, {
|
|
487
102
|
variant: "icon",
|
|
488
103
|
size: 20,
|
|
489
|
-
fillColor: bloomTheme.colors.
|
|
104
|
+
fillColor: bloomTheme.colors.primaryForeground,
|
|
490
105
|
style: styles.buttonIcon
|
|
491
106
|
}),
|
|
492
|
-
style:
|
|
493
|
-
|
|
494
|
-
borderRadius: 12
|
|
495
|
-
},
|
|
496
|
-
children: "Open Oxy Auth"
|
|
107
|
+
style: styles.primaryButton,
|
|
108
|
+
children: "Continue with Oxy"
|
|
497
109
|
}), isWaiting && /*#__PURE__*/_jsxs(View, {
|
|
498
110
|
style: styles.statusContainer,
|
|
499
111
|
children: [/*#__PURE__*/_jsx(Loading, {
|
|
500
112
|
size: "small",
|
|
501
|
-
style:
|
|
502
|
-
flex: undefined
|
|
503
|
-
}
|
|
113
|
+
style: styles.statusSpinner
|
|
504
114
|
}), /*#__PURE__*/_jsx(Text, {
|
|
505
115
|
style: styles.statusText,
|
|
506
116
|
className: "text-muted-foreground",
|
|
507
117
|
children: "Waiting for authorization..."
|
|
508
118
|
})]
|
|
119
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
120
|
+
style: styles.qrSection,
|
|
121
|
+
children: /*#__PURE__*/_jsx(AnotherDeviceQR, {
|
|
122
|
+
qrData: qrData
|
|
123
|
+
})
|
|
509
124
|
}), /*#__PURE__*/_jsxs(View, {
|
|
510
125
|
style: styles.footer,
|
|
511
126
|
children: [/*#__PURE__*/_jsxs(Text, {
|
|
512
127
|
style: styles.footerText,
|
|
513
128
|
className: "text-muted-foreground",
|
|
514
|
-
children: ["Don't have Oxy
|
|
129
|
+
children: ["Don't have an Oxy account?", ' ']
|
|
515
130
|
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
516
131
|
onPress: () => Linking.openURL(OXY_ACCOUNTS_WEB_URL),
|
|
132
|
+
accessibilityRole: "link",
|
|
517
133
|
children: /*#__PURE__*/_jsx(Text, {
|
|
518
134
|
style: styles.footerLink,
|
|
519
135
|
className: "text-primary",
|
|
520
|
-
children: "
|
|
136
|
+
children: "Create one"
|
|
521
137
|
})
|
|
522
138
|
})]
|
|
523
139
|
}), goBack && /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
524
140
|
style: styles.cancelButton,
|
|
525
141
|
onPress: goBack,
|
|
142
|
+
accessibilityRole: "button",
|
|
526
143
|
children: /*#__PURE__*/_jsx(Text, {
|
|
527
144
|
style: styles.cancelText,
|
|
528
145
|
className: "text-muted-foreground",
|
|
@@ -540,62 +157,47 @@ const styles = StyleSheet.create({
|
|
|
540
157
|
},
|
|
541
158
|
header: {
|
|
542
159
|
alignItems: 'center',
|
|
543
|
-
marginBottom:
|
|
160
|
+
marginBottom: 28
|
|
544
161
|
},
|
|
545
162
|
title: {
|
|
546
163
|
fontSize: 24,
|
|
547
164
|
fontWeight: 'bold',
|
|
548
|
-
marginTop: 16
|
|
165
|
+
marginTop: 16,
|
|
166
|
+
textAlign: 'center'
|
|
549
167
|
},
|
|
550
168
|
subtitle: {
|
|
551
169
|
fontSize: 14,
|
|
552
170
|
marginTop: 8,
|
|
553
171
|
textAlign: 'center'
|
|
554
172
|
},
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
borderRadius: 16,
|
|
558
|
-
borderWidth: 1,
|
|
559
|
-
alignItems: 'center'
|
|
560
|
-
},
|
|
561
|
-
qrWrapper: {
|
|
562
|
-
padding: 16,
|
|
563
|
-
backgroundColor: 'white',
|
|
173
|
+
primaryButton: {
|
|
174
|
+
width: '100%',
|
|
564
175
|
borderRadius: 12
|
|
565
176
|
},
|
|
566
|
-
qrHint: {
|
|
567
|
-
marginTop: 16,
|
|
568
|
-
fontSize: 12
|
|
569
|
-
},
|
|
570
|
-
dividerContainer: {
|
|
571
|
-
flexDirection: 'row',
|
|
572
|
-
alignItems: 'center',
|
|
573
|
-
marginVertical: 24,
|
|
574
|
-
width: '100%'
|
|
575
|
-
},
|
|
576
|
-
divider: {
|
|
577
|
-
flex: 1,
|
|
578
|
-
height: 1
|
|
579
|
-
},
|
|
580
|
-
dividerText: {
|
|
581
|
-
marginHorizontal: 16,
|
|
582
|
-
fontSize: 14
|
|
583
|
-
},
|
|
584
177
|
buttonIcon: {
|
|
585
178
|
marginRight: 10
|
|
586
179
|
},
|
|
587
180
|
statusContainer: {
|
|
588
181
|
flexDirection: 'row',
|
|
589
182
|
alignItems: 'center',
|
|
590
|
-
marginTop:
|
|
183
|
+
marginTop: 20
|
|
184
|
+
},
|
|
185
|
+
statusSpinner: {
|
|
186
|
+
flex: undefined
|
|
591
187
|
},
|
|
592
188
|
statusText: {
|
|
593
189
|
marginLeft: 8,
|
|
594
190
|
fontSize: 14
|
|
595
191
|
},
|
|
192
|
+
qrSection: {
|
|
193
|
+
width: '100%',
|
|
194
|
+
marginTop: 24
|
|
195
|
+
},
|
|
596
196
|
footer: {
|
|
597
197
|
flexDirection: 'row',
|
|
598
|
-
|
|
198
|
+
flexWrap: 'wrap',
|
|
199
|
+
justifyContent: 'center',
|
|
200
|
+
marginTop: 28
|
|
599
201
|
},
|
|
600
202
|
footerText: {
|
|
601
203
|
fontSize: 14
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useEffect","useCallback","useRef","View","Text","TouchableOpacity","StyleSheet","Linking","Platform","io","useTheme","Button","Loading","useOxy","QRCode","OxyLogo","createDebugLogger","completeDeviceFlowSignIn","jsx","_jsx","jsxs","_jsxs","debug","OXY_ACCOUNTS_WEB_URL","OXY_AUTH_WEB_URL","AUTH_SESSION_EXPIRY_MS","POLLING_INTERVAL_MS","resolveAuthWebBaseUrl","baseURL","authWebUrl","url","URL","port","origin","hostname","startsWith","slice","resolveAuthRedirectUri","authRedirectUri","initialUrl","getInitialURL","parsed","search","hash","toString","getRedirectParams","sessionId","searchParams","get","undefined","error","OxyAuthScreen","navigate","goBack","onAuthenticated","theme","bloomTheme","oxyServices","switchSession","clientId","authSession","setAuthSession","isLoading","setIsLoading","setError","isWaiting","setIsWaiting","connectionType","setConnectionType","socketRef","pollingIntervalRef","isProcessingRef","linkingHandledRef","handleAuthSuccess","sessionToken","current","Error","user","err","connectSocket","getBaseURL","socket","transports","reconnection","reconnectionAttempts","reconnectionDelay","on","log","emit","payload","status","cleanup","message","disconnect","startPolling","setInterval","response","makeRequest","cache","authorized","clearInterval","generateAuthSession","generateSessionToken","expiresAt","Date","now","chars","result","i","charAt","Math","floor","random","length","getQRData","handleOpenAuth","authBaseUrl","config","webUrl","set","redirectUri","openURL","handleRefresh","handleAuthRedirect","params","flowSessionToken","OS","subscription","addEventListener","then","catch","remove","style","styles","container","backgroundColor","colors","background","children","size","loadingText","className","errorText","variant","onPress","width","borderRadius","header","title","subtitle","qrContainer","qrWrapper","value","color","qrHint","dividerContainer","divider","dividerText","icon","fillColor","card","buttonIcon","statusContainer","flex","statusText","footer","footerText","footerLink","cancelButton","cancelText","create","padding","alignItems","justifyContent","marginBottom","fontSize","fontWeight","marginTop","textAlign","borderWidth","flexDirection","marginVertical","height","marginHorizontal","marginRight","marginLeft"],"sourceRoot":"../../../../src","sources":["ui/screens/OxyAuthScreen.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["View","Text","TouchableOpacity","StyleSheet","Linking","useTheme","Button","Loading","useOxy","OxyLogo","AnotherDeviceQR","useOxyAuthSession","OXY_ACCOUNTS_WEB_URL","jsx","_jsx","jsxs","_jsxs","OxyAuthScreen","goBack","onAuthenticated","bloomTheme","oxyServices","switchSession","clientId","qrData","isLoading","error","isWaiting","openAuthApproval","retry","onSignedIn","style","styles","container","backgroundColor","colors","background","children","size","loadingText","className","errorText","variant","onPress","primaryButton","header","title","subtitle","icon","fillColor","primaryForeground","buttonIcon","statusContainer","statusSpinner","statusText","qrSection","footer","footerText","openURL","accessibilityRole","footerLink","cancelButton","cancelText","create","flex","padding","alignItems","justifyContent","marginBottom","fontSize","fontWeight","marginTop","textAlign","width","borderRadius","marginRight","flexDirection","undefined","marginLeft","flexWrap"],"sourceRoot":"../../../../src","sources":["ui/screens/OxyAuthScreen.tsx"],"mappings":"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","ignoreList":[]}
|