@onairos/react-native 3.0.68 → 3.0.70
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/components/onboarding/OAuthWebView.js +156 -10
- package/lib/commonjs/components/onboarding/OAuthWebView.js.map +1 -1
- package/lib/commonjs/index.js +54 -13
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/services/platformAuthService.js +189 -44
- package/lib/commonjs/services/platformAuthService.js.map +1 -1
- package/lib/module/components/onboarding/OAuthWebView.js +156 -10
- package/lib/module/components/onboarding/OAuthWebView.js.map +1 -1
- package/lib/module/services/platformAuthService.js +188 -43
- package/lib/module/services/platformAuthService.js.map +1 -1
- package/lib/typescript/components/onboarding/OAuthWebView.d.ts.map +1 -1
- package/lib/typescript/services/platformAuthService.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/onboarding/OAuthWebView.tsx +137 -6
- package/src/services/platformAuthService.ts +204 -39
|
@@ -148,52 +148,95 @@ export const OAuthWebView = ({
|
|
|
148
148
|
|
|
149
149
|
// Check for specific NSURLErrorDomain codes
|
|
150
150
|
let errorMessage = 'Failed to load OAuth page.';
|
|
151
|
+
let isRetryable = true;
|
|
151
152
|
if (nativeEvent.domain === 'NSURLErrorDomain') {
|
|
152
153
|
switch (nativeEvent.code) {
|
|
153
154
|
case -1009:
|
|
154
155
|
// NSURLErrorNotConnectedToInternet
|
|
155
156
|
errorMessage = 'No internet connection. Please check your network and try again.';
|
|
157
|
+
isRetryable = true;
|
|
156
158
|
break;
|
|
157
159
|
case -1003:
|
|
158
160
|
// NSURLErrorCannotFindHost
|
|
159
161
|
errorMessage = 'Cannot reach authentication server. Please check your internet connection.';
|
|
162
|
+
isRetryable = true;
|
|
160
163
|
break;
|
|
161
164
|
case -1001:
|
|
162
165
|
// NSURLErrorTimedOut
|
|
163
166
|
errorMessage = 'Connection timed out. Please try again.';
|
|
167
|
+
isRetryable = true;
|
|
164
168
|
break;
|
|
165
169
|
case -1200:
|
|
166
170
|
// NSURLErrorSecureConnectionFailed
|
|
167
171
|
errorMessage = 'Secure connection failed. Please try again.';
|
|
172
|
+
isRetryable = true;
|
|
168
173
|
break;
|
|
169
174
|
case -1022:
|
|
170
175
|
// NSURLErrorAppTransportSecurityRequiresSecureConnection
|
|
171
176
|
errorMessage = 'App Transport Security error. Connection must be secure.';
|
|
177
|
+
isRetryable = false;
|
|
172
178
|
break;
|
|
173
179
|
case -1004:
|
|
174
180
|
// NSURLErrorCannotConnectToHost
|
|
175
181
|
errorMessage = 'Cannot connect to authentication server. Please try again later.';
|
|
182
|
+
isRetryable = true;
|
|
183
|
+
break;
|
|
184
|
+
case -1005:
|
|
185
|
+
// NSURLErrorNetworkConnectionLost
|
|
186
|
+
errorMessage = 'Network connection lost. Please check your connection and try again.';
|
|
187
|
+
isRetryable = true;
|
|
188
|
+
break;
|
|
189
|
+
case -1020:
|
|
190
|
+
// NSURLErrorDataNotAllowed
|
|
191
|
+
errorMessage = 'Data not allowed. Please check your cellular data settings.';
|
|
192
|
+
isRetryable = true;
|
|
176
193
|
break;
|
|
177
194
|
default:
|
|
178
195
|
errorMessage = `Network error (${nativeEvent.code}): ${nativeEvent.description || 'Please check your connection and try again.'}`;
|
|
196
|
+
isRetryable = true;
|
|
197
|
+
}
|
|
198
|
+
} else if (nativeEvent.domain === 'WebKitErrorDomain') {
|
|
199
|
+
switch (nativeEvent.code) {
|
|
200
|
+
case 102:
|
|
201
|
+
// WebKitErrorFrameLoadInterruptedByPolicyChange
|
|
202
|
+
errorMessage = 'Page load was interrupted. Please try again.';
|
|
203
|
+
isRetryable = true;
|
|
204
|
+
break;
|
|
205
|
+
case 204:
|
|
206
|
+
// WebKitErrorPlugInLoadFailed
|
|
207
|
+
errorMessage = 'Plugin failed to load. Please try again.';
|
|
208
|
+
isRetryable = true;
|
|
209
|
+
break;
|
|
210
|
+
default:
|
|
211
|
+
errorMessage = `WebKit error (${nativeEvent.code}): ${nativeEvent.description || 'Please try again.'}`;
|
|
212
|
+
isRetryable = true;
|
|
179
213
|
}
|
|
180
214
|
}
|
|
181
215
|
console.error('🔴 OAuth WebView Error:', errorMessage);
|
|
182
|
-
|
|
183
|
-
|
|
216
|
+
|
|
217
|
+
// Implement smart retry logic
|
|
218
|
+
if (isRetryable && retryCount < 3) {
|
|
219
|
+
console.log(`🔄 Auto-retrying OAuth load (attempt ${retryCount + 1}/3) in 3 seconds...`);
|
|
184
220
|
setRetryCount(prev => prev + 1);
|
|
185
221
|
setIsLoading(true);
|
|
186
222
|
setError(null);
|
|
187
223
|
|
|
188
|
-
// Retry after a
|
|
224
|
+
// Retry after a delay with exponential backoff
|
|
225
|
+
const retryDelay = 3000 * Math.pow(2, retryCount); // 3s, 6s, 12s
|
|
189
226
|
setTimeout(() => {
|
|
190
227
|
if (webViewRef.current) {
|
|
228
|
+
console.log(`🔄 Attempting retry ${retryCount + 1}...`);
|
|
191
229
|
webViewRef.current.reload();
|
|
192
230
|
}
|
|
193
|
-
},
|
|
231
|
+
}, retryDelay);
|
|
194
232
|
} else {
|
|
195
233
|
setError(errorMessage);
|
|
196
234
|
setIsLoading(false);
|
|
235
|
+
|
|
236
|
+
// Show additional help for persistent errors
|
|
237
|
+
if (retryCount >= 3) {
|
|
238
|
+
console.log('❌ Maximum retries reached, showing error to user');
|
|
239
|
+
}
|
|
197
240
|
}
|
|
198
241
|
};
|
|
199
242
|
const handleOpenInBrowser = () => {
|
|
@@ -282,19 +325,81 @@ export const OAuthWebView = ({
|
|
|
282
325
|
style: styles.errorTitle
|
|
283
326
|
}, "Connection Error"), /*#__PURE__*/React.createElement(Text, {
|
|
284
327
|
style: styles.errorMessage
|
|
285
|
-
}, error), /*#__PURE__*/React.createElement(View, {
|
|
328
|
+
}, error), error.includes('internet') || error.includes('network') ? /*#__PURE__*/React.createElement(View, {
|
|
329
|
+
style: styles.helpContainer
|
|
330
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
331
|
+
style: styles.helpTitle
|
|
332
|
+
}, "\uD83D\uDCA1 Troubleshooting Steps:"), /*#__PURE__*/React.createElement(Text, {
|
|
333
|
+
style: styles.helpText
|
|
334
|
+
}, "\u2022 Check your Wi-Fi or cellular connection"), /*#__PURE__*/React.createElement(Text, {
|
|
335
|
+
style: styles.helpText
|
|
336
|
+
}, "\u2022 Try switching between Wi-Fi and cellular"), /*#__PURE__*/React.createElement(Text, {
|
|
337
|
+
style: styles.helpText
|
|
338
|
+
}, "\u2022 Ensure you're not using a VPN that blocks OAuth"), /*#__PURE__*/React.createElement(Text, {
|
|
339
|
+
style: styles.helpText
|
|
340
|
+
}, "\u2022 Close other apps that might be using bandwidth")) : error.includes('timeout') ? /*#__PURE__*/React.createElement(View, {
|
|
341
|
+
style: styles.helpContainer
|
|
342
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
343
|
+
style: styles.helpTitle
|
|
344
|
+
}, "\u23F1\uFE0F Connection Timeout:"), /*#__PURE__*/React.createElement(Text, {
|
|
345
|
+
style: styles.helpText
|
|
346
|
+
}, "\u2022 Your connection might be slow"), /*#__PURE__*/React.createElement(Text, {
|
|
347
|
+
style: styles.helpText
|
|
348
|
+
}, "\u2022 Try again when you have a stronger signal"), /*#__PURE__*/React.createElement(Text, {
|
|
349
|
+
style: styles.helpText
|
|
350
|
+
}, "\u2022 Use \"Open in Browser\" for better reliability")) : error.includes('secure') || error.includes('SSL') ? /*#__PURE__*/React.createElement(View, {
|
|
351
|
+
style: styles.helpContainer
|
|
352
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
353
|
+
style: styles.helpTitle
|
|
354
|
+
}, "\uD83D\uDD12 Security Error:"), /*#__PURE__*/React.createElement(Text, {
|
|
355
|
+
style: styles.helpText
|
|
356
|
+
}, "\u2022 Check your device's date and time settings"), /*#__PURE__*/React.createElement(Text, {
|
|
357
|
+
style: styles.helpText
|
|
358
|
+
}, "\u2022 Update your device's operating system"), /*#__PURE__*/React.createElement(Text, {
|
|
359
|
+
style: styles.helpText
|
|
360
|
+
}, "\u2022 Try \"Open in Browser\" as an alternative")) : /*#__PURE__*/React.createElement(View, {
|
|
361
|
+
style: styles.helpContainer
|
|
362
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
363
|
+
style: styles.helpTitle
|
|
364
|
+
}, "\uD83D\uDD27 General Solutions:"), /*#__PURE__*/React.createElement(Text, {
|
|
365
|
+
style: styles.helpText
|
|
366
|
+
}, "\u2022 Close and reopen the app"), /*#__PURE__*/React.createElement(Text, {
|
|
367
|
+
style: styles.helpText
|
|
368
|
+
}, "\u2022 Check your internet connection"), /*#__PURE__*/React.createElement(Text, {
|
|
369
|
+
style: styles.helpText
|
|
370
|
+
}, "\u2022 Use \"Open in Browser\" for better reliability")), /*#__PURE__*/React.createElement(View, {
|
|
286
371
|
style: styles.buttonContainer
|
|
287
372
|
}, /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
288
373
|
style: styles.retryButton,
|
|
289
374
|
onPress: handleRetry
|
|
290
|
-
}, /*#__PURE__*/React.createElement(
|
|
375
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
376
|
+
name: "refresh",
|
|
377
|
+
size: 20,
|
|
378
|
+
color: "#fff",
|
|
379
|
+
style: styles.buttonIcon
|
|
380
|
+
}), /*#__PURE__*/React.createElement(Text, {
|
|
291
381
|
style: styles.retryButtonText
|
|
292
382
|
}, "Retry")), /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
293
383
|
style: styles.browserButton,
|
|
294
384
|
onPress: handleOpenInBrowser
|
|
295
|
-
}, /*#__PURE__*/React.createElement(
|
|
385
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
386
|
+
name: "open-in-browser",
|
|
387
|
+
size: 20,
|
|
388
|
+
color: "#666",
|
|
389
|
+
style: styles.buttonIcon
|
|
390
|
+
}), /*#__PURE__*/React.createElement(Text, {
|
|
296
391
|
style: styles.browserButtonText
|
|
297
|
-
}, "Open in Browser")))
|
|
392
|
+
}, "Open in Browser"))), retryCount >= 3 && /*#__PURE__*/React.createElement(View, {
|
|
393
|
+
style: styles.persistentErrorContainer
|
|
394
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
395
|
+
style: styles.persistentErrorText
|
|
396
|
+
}, "Still having trouble? Try these steps:"), /*#__PURE__*/React.createElement(Text, {
|
|
397
|
+
style: styles.persistentErrorStep
|
|
398
|
+
}, "1. Use \"Open in Browser\" for more reliable authentication"), /*#__PURE__*/React.createElement(Text, {
|
|
399
|
+
style: styles.persistentErrorStep
|
|
400
|
+
}, "2. Check if other apps can access the internet"), /*#__PURE__*/React.createElement(Text, {
|
|
401
|
+
style: styles.persistentErrorStep
|
|
402
|
+
}, "3. Restart your device if the problem persists"))));
|
|
298
403
|
}
|
|
299
404
|
return /*#__PURE__*/React.createElement(SafeAreaView, {
|
|
300
405
|
style: styles.container
|
|
@@ -464,7 +569,10 @@ const styles = StyleSheet.create({
|
|
|
464
569
|
borderColor: '#666',
|
|
465
570
|
paddingHorizontal: 24,
|
|
466
571
|
paddingVertical: 12,
|
|
467
|
-
borderRadius: 8
|
|
572
|
+
borderRadius: 8,
|
|
573
|
+
flexDirection: 'row',
|
|
574
|
+
alignItems: 'center',
|
|
575
|
+
justifyContent: 'center'
|
|
468
576
|
},
|
|
469
577
|
webView: {
|
|
470
578
|
flex: 1
|
|
@@ -504,7 +612,10 @@ const styles = StyleSheet.create({
|
|
|
504
612
|
paddingHorizontal: 24,
|
|
505
613
|
paddingVertical: 12,
|
|
506
614
|
borderRadius: 8,
|
|
507
|
-
marginRight: 10
|
|
615
|
+
marginRight: 10,
|
|
616
|
+
flexDirection: 'row',
|
|
617
|
+
alignItems: 'center',
|
|
618
|
+
justifyContent: 'center'
|
|
508
619
|
},
|
|
509
620
|
retryButtonText: {
|
|
510
621
|
color: '#fff',
|
|
@@ -521,6 +632,41 @@ const styles = StyleSheet.create({
|
|
|
521
632
|
color: '#666',
|
|
522
633
|
fontSize: 16,
|
|
523
634
|
fontWeight: '600'
|
|
635
|
+
},
|
|
636
|
+
helpContainer: {
|
|
637
|
+
marginBottom: 20
|
|
638
|
+
},
|
|
639
|
+
helpTitle: {
|
|
640
|
+
fontSize: 18,
|
|
641
|
+
fontWeight: '600',
|
|
642
|
+
color: '#333',
|
|
643
|
+
marginBottom: 8
|
|
644
|
+
},
|
|
645
|
+
helpText: {
|
|
646
|
+
fontSize: 14,
|
|
647
|
+
color: '#666',
|
|
648
|
+
textAlign: 'center'
|
|
649
|
+
},
|
|
650
|
+
buttonIcon: {
|
|
651
|
+
marginRight: 10
|
|
652
|
+
},
|
|
653
|
+
persistentErrorContainer: {
|
|
654
|
+
marginTop: 20,
|
|
655
|
+
padding: 20,
|
|
656
|
+
backgroundColor: '#f8f8f8',
|
|
657
|
+
borderRadius: 8
|
|
658
|
+
},
|
|
659
|
+
persistentErrorText: {
|
|
660
|
+
fontSize: 16,
|
|
661
|
+
fontWeight: '600',
|
|
662
|
+
color: '#333',
|
|
663
|
+
marginBottom: 10
|
|
664
|
+
},
|
|
665
|
+
persistentErrorStep: {
|
|
666
|
+
fontSize: 14,
|
|
667
|
+
color: '#666',
|
|
668
|
+
textAlign: 'center',
|
|
669
|
+
marginBottom: 5
|
|
524
670
|
}
|
|
525
671
|
});
|
|
526
672
|
//# sourceMappingURL=OAuthWebView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useRef","View","Text","StyleSheet","TouchableOpacity","ActivityIndicator","SafeAreaView","Dimensions","Linking","WebView","Icon","COLORS","width","height","get","OAuthWebView","url","onClose","onSuccess","platform","onComplete","_url$split$","_url$split$2","isLoading","setIsLoading","error","setError","retryCount","setRetryCount","webViewRef","timeoutRef","console","log","protocol","split","domain","path","slice","join","useEffect","current","clearTimeout","setTimeout","handleNavigationStateChange","navState","includes","isFinalOAuthRedirect","handleLoadEnd","handleError","syntheticEvent","nativeEvent","description","code","canGoBack","canGoForward","loading","target","title","errorMessage","prev","reload","handleOpenInBrowser","openURL","catch","err","handleRetry","getPlatformIcon","getPlatformColor","primary","createElement","style","styles","container","header","onPress","closeButton","name","size","color","titleContainer","titleText","charAt","toUpperCase","errorContainer","errorTitle","buttonContainer","retryButton","retryButtonText","browserButton","browserButtonText","ref","source","uri","onNavigationStateChange","onLoadEnd","onError","onHttpError","webView","javaScriptEnabled","domStorageEnabled","startInLoadingState","scalesPageToFit","allowsInlineMediaPlayback","mediaPlaybackRequiresUserAction","mixedContentMode","thirdPartyCookiesEnabled","sharedCookiesEnabled","cacheEnabled","allowsBackForwardNavigationGestures","allowsLinkPreview","userAgent","onShouldStartLoadWithRequest","request","startsWith","onLoadStart","onLoadProgress","progress","renderError","errorName","renderLoading","loadingContainer","loadingText","injectedJavaScript","create","flex","backgroundColor","flexDirection","alignItems","borderBottomWidth","borderBottomColor","paddingHorizontal","justifyContent","marginLeft","fontSize","fontWeight","padding","position","left","zIndex","borderWidth","borderColor","paddingVertical","borderRadius","absoluteFillObject","marginTop","marginBottom","textAlign","marginRight"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/onboarding/OAuthWebView.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useState","useRef","View","Text","StyleSheet","TouchableOpacity","ActivityIndicator","SafeAreaView","Dimensions","Linking","WebView","Icon","COLORS","width","height","get","OAuthWebView","url","onClose","onSuccess","platform","onComplete","_url$split$","_url$split$2","isLoading","setIsLoading","error","setError","retryCount","setRetryCount","webViewRef","timeoutRef","console","log","protocol","split","domain","path","slice","join","useEffect","current","clearTimeout","setTimeout","handleNavigationStateChange","navState","includes","isFinalOAuthRedirect","handleLoadEnd","handleError","syntheticEvent","nativeEvent","description","code","canGoBack","canGoForward","loading","target","title","errorMessage","isRetryable","prev","retryDelay","Math","pow","reload","handleOpenInBrowser","openURL","catch","err","handleRetry","getPlatformIcon","getPlatformColor","primary","createElement","style","styles","container","header","onPress","closeButton","name","size","color","titleContainer","titleText","charAt","toUpperCase","errorContainer","errorTitle","helpContainer","helpTitle","helpText","buttonContainer","retryButton","buttonIcon","retryButtonText","browserButton","browserButtonText","persistentErrorContainer","persistentErrorText","persistentErrorStep","ref","source","uri","onNavigationStateChange","onLoadEnd","onError","onHttpError","webView","javaScriptEnabled","domStorageEnabled","startInLoadingState","scalesPageToFit","allowsInlineMediaPlayback","mediaPlaybackRequiresUserAction","mixedContentMode","thirdPartyCookiesEnabled","sharedCookiesEnabled","cacheEnabled","allowsBackForwardNavigationGestures","allowsLinkPreview","userAgent","onShouldStartLoadWithRequest","request","startsWith","onLoadStart","onLoadProgress","progress","renderError","errorName","renderLoading","loadingContainer","loadingText","injectedJavaScript","create","flex","backgroundColor","flexDirection","alignItems","borderBottomWidth","borderBottomColor","paddingHorizontal","justifyContent","marginLeft","fontSize","fontWeight","padding","position","left","zIndex","borderWidth","borderColor","paddingVertical","borderRadius","absoluteFillObject","marginTop","marginBottom","textAlign","marginRight"],"sourceRoot":"..\\..\\..\\..\\src","sources":["components/onboarding/OAuthWebView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -90,6 +90,15 @@ export const initiateOAuth = async (platform, username, appName) => {
|
|
|
90
90
|
console.log('🌐 Platform uses OAuth WebView flow');
|
|
91
91
|
console.log('🔗 Auth endpoint:', PLATFORM_AUTH_CONFIG[platform].authEndpoint);
|
|
92
92
|
|
|
93
|
+
// Pre-flight connectivity check
|
|
94
|
+
console.log('🔍 Performing pre-flight connectivity check...');
|
|
95
|
+
const connectivityResult = await testApiConnectivity();
|
|
96
|
+
if (!connectivityResult.success) {
|
|
97
|
+
console.error('❌ Pre-flight connectivity check failed:', connectivityResult.error);
|
|
98
|
+
throw new Error(`Cannot reach authentication server: ${connectivityResult.error}`);
|
|
99
|
+
}
|
|
100
|
+
console.log('✅ Pre-flight connectivity check passed');
|
|
101
|
+
|
|
93
102
|
// Handle Instagram with specific API format
|
|
94
103
|
if (platform === 'instagram') {
|
|
95
104
|
const state = 'djksbfds';
|
|
@@ -100,13 +109,28 @@ export const initiateOAuth = async (platform, username, appName) => {
|
|
|
100
109
|
}
|
|
101
110
|
};
|
|
102
111
|
console.log('📤 Sending Instagram OAuth request:', jsonData);
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
112
|
+
const controller = new AbortController();
|
|
113
|
+
const timeoutId = setTimeout(() => controller.abort(), 30000); // 30 second timeout
|
|
114
|
+
|
|
115
|
+
let response;
|
|
116
|
+
try {
|
|
117
|
+
response = await fetch('https://api2.onairos.uk/instagram/authorize', {
|
|
118
|
+
method: 'POST',
|
|
119
|
+
headers: {
|
|
120
|
+
'Content-Type': 'application/json',
|
|
121
|
+
'User-Agent': 'OnairosReactNative/1.0'
|
|
122
|
+
},
|
|
123
|
+
body: JSON.stringify(jsonData),
|
|
124
|
+
signal: controller.signal
|
|
125
|
+
});
|
|
126
|
+
} catch (fetchError) {
|
|
127
|
+
clearTimeout(timeoutId);
|
|
128
|
+
if (fetchError.name === 'AbortError') {
|
|
129
|
+
throw new Error(`Request timeout: Instagram OAuth server took too long to respond`);
|
|
130
|
+
}
|
|
131
|
+
throw new Error(`Network error: ${fetchError.message || 'Failed to connect to Instagram OAuth server'}`);
|
|
132
|
+
}
|
|
133
|
+
clearTimeout(timeoutId);
|
|
110
134
|
console.log('📡 Instagram OAuth response status:', response.status);
|
|
111
135
|
console.log('📡 Instagram OAuth response headers:', response.headers);
|
|
112
136
|
if (!response.ok) {
|
|
@@ -118,7 +142,13 @@ export const initiateOAuth = async (platform, username, appName) => {
|
|
|
118
142
|
console.log('📥 Instagram OAuth response data:', responseData);
|
|
119
143
|
if (responseData.instagramURL) {
|
|
120
144
|
console.log('✅ Instagram OAuth URL received:', responseData.instagramURL);
|
|
121
|
-
|
|
145
|
+
|
|
146
|
+
// Validate the URL before returning
|
|
147
|
+
if (await validateOAuthUrl(responseData.instagramURL)) {
|
|
148
|
+
return responseData.instagramURL;
|
|
149
|
+
} else {
|
|
150
|
+
throw new Error('Received invalid Instagram OAuth URL');
|
|
151
|
+
}
|
|
122
152
|
}
|
|
123
153
|
console.error('❌ No Instagram URL found in response');
|
|
124
154
|
throw new Error('No Instagram URL found in response');
|
|
@@ -135,14 +165,29 @@ export const initiateOAuth = async (platform, username, appName) => {
|
|
|
135
165
|
};
|
|
136
166
|
console.log(`📤 Sending ${platform} OAuth request:`, jsonData);
|
|
137
167
|
|
|
138
|
-
// Make the request to get the OAuth URL
|
|
139
|
-
const
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
168
|
+
// Make the request to get the OAuth URL with enhanced error handling
|
|
169
|
+
const controller = new AbortController();
|
|
170
|
+
const timeoutId = setTimeout(() => controller.abort(), 30000); // 30 second timeout
|
|
171
|
+
|
|
172
|
+
let response;
|
|
173
|
+
try {
|
|
174
|
+
response = await fetch(PLATFORM_AUTH_CONFIG[platform].authEndpoint, {
|
|
175
|
+
method: 'POST',
|
|
176
|
+
headers: {
|
|
177
|
+
'Content-Type': 'application/json',
|
|
178
|
+
'User-Agent': 'OnairosReactNative/1.0'
|
|
179
|
+
},
|
|
180
|
+
body: JSON.stringify(jsonData),
|
|
181
|
+
signal: controller.signal
|
|
182
|
+
});
|
|
183
|
+
} catch (fetchError) {
|
|
184
|
+
clearTimeout(timeoutId);
|
|
185
|
+
if (fetchError.name === 'AbortError') {
|
|
186
|
+
throw new Error(`Request timeout: ${platform} OAuth server took too long to respond`);
|
|
187
|
+
}
|
|
188
|
+
throw new Error(`Network error: ${fetchError.message || 'Failed to connect to OAuth server'}`);
|
|
189
|
+
}
|
|
190
|
+
clearTimeout(timeoutId);
|
|
146
191
|
console.log(`📡 ${platform} OAuth response status:`, response.status);
|
|
147
192
|
console.log(`📡 ${platform} OAuth response headers:`, response.headers);
|
|
148
193
|
if (!response.ok) {
|
|
@@ -162,35 +207,102 @@ export const initiateOAuth = async (platform, username, appName) => {
|
|
|
162
207
|
}
|
|
163
208
|
|
|
164
209
|
// Check if the response contains the OAuth URL based on platform
|
|
210
|
+
let oauthUrl = null;
|
|
165
211
|
switch (platform) {
|
|
166
212
|
case 'reddit':
|
|
167
|
-
|
|
213
|
+
oauthUrl = data.redditURL;
|
|
168
214
|
break;
|
|
169
215
|
case 'pinterest':
|
|
170
|
-
|
|
216
|
+
oauthUrl = data.pinterestURL;
|
|
171
217
|
break;
|
|
172
218
|
case 'youtube':
|
|
173
|
-
|
|
219
|
+
oauthUrl = data.youtubeURL;
|
|
174
220
|
break;
|
|
175
221
|
case 'email':
|
|
176
222
|
// Gmail might return under different field names
|
|
177
|
-
|
|
178
|
-
if (data.gmailURL) return data.gmailURL;
|
|
179
|
-
if (data.authUrl) return data.authUrl;
|
|
180
|
-
if (data.url) return data.url;
|
|
223
|
+
oauthUrl = data.emailURL || data.gmailURL || data.authUrl || data.url;
|
|
181
224
|
break;
|
|
182
225
|
default:
|
|
183
|
-
|
|
226
|
+
oauthUrl = data.url;
|
|
184
227
|
break;
|
|
185
228
|
}
|
|
186
|
-
|
|
187
|
-
|
|
229
|
+
if (!oauthUrl) {
|
|
230
|
+
console.error(`❌ No OAuth URL found in response for ${platform}. Response:`, data);
|
|
231
|
+
throw new Error(`No OAuth URL found in response for ${platform}`);
|
|
232
|
+
}
|
|
233
|
+
console.log(`✅ ${platform} OAuth URL received:`, oauthUrl);
|
|
234
|
+
|
|
235
|
+
// Validate the URL before returning
|
|
236
|
+
if (await validateOAuthUrl(oauthUrl)) {
|
|
237
|
+
return oauthUrl;
|
|
238
|
+
} else {
|
|
239
|
+
throw new Error(`Received invalid ${platform} OAuth URL`);
|
|
240
|
+
}
|
|
188
241
|
} catch (error) {
|
|
189
242
|
console.error(`Error initiating OAuth for ${platform}:`, error);
|
|
190
243
|
throw error;
|
|
191
244
|
}
|
|
192
245
|
};
|
|
193
246
|
|
|
247
|
+
/**
|
|
248
|
+
* Validates an OAuth URL to ensure it's reachable
|
|
249
|
+
* @param url The OAuth URL to validate
|
|
250
|
+
* @returns Promise<boolean> indicating if the URL is valid and reachable
|
|
251
|
+
*/
|
|
252
|
+
const validateOAuthUrl = async url => {
|
|
253
|
+
try {
|
|
254
|
+
console.log('🔍 Validating OAuth URL:', url);
|
|
255
|
+
|
|
256
|
+
// Basic URL format validation
|
|
257
|
+
if (!url || typeof url !== 'string') {
|
|
258
|
+
console.error('❌ Invalid URL format:', url);
|
|
259
|
+
return false;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
// Check if URL starts with https
|
|
263
|
+
if (!url.startsWith('https://')) {
|
|
264
|
+
console.error('❌ URL must use HTTPS:', url);
|
|
265
|
+
return false;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
// Try to parse the URL
|
|
269
|
+
try {
|
|
270
|
+
new URL(url);
|
|
271
|
+
} catch (parseError) {
|
|
272
|
+
console.error('❌ URL parsing failed:', parseError);
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
// Make a HEAD request to check if the URL is reachable
|
|
277
|
+
const controller = new AbortController();
|
|
278
|
+
const timeoutId = setTimeout(() => controller.abort(), 10000); // 10 second timeout
|
|
279
|
+
|
|
280
|
+
try {
|
|
281
|
+
const response = await fetch(url, {
|
|
282
|
+
method: 'HEAD',
|
|
283
|
+
signal: controller.signal
|
|
284
|
+
});
|
|
285
|
+
clearTimeout(timeoutId);
|
|
286
|
+
|
|
287
|
+
// Accept any response that's not a network error
|
|
288
|
+
// OAuth pages might return various status codes
|
|
289
|
+
console.log('✅ OAuth URL validation successful, status:', response.status);
|
|
290
|
+
return true;
|
|
291
|
+
} catch (fetchError) {
|
|
292
|
+
clearTimeout(timeoutId);
|
|
293
|
+
if (fetchError.name === 'AbortError') {
|
|
294
|
+
console.warn('⚠️ OAuth URL validation timeout, but proceeding anyway');
|
|
295
|
+
return true; // Allow timeout as URLs might be slow to respond
|
|
296
|
+
}
|
|
297
|
+
console.warn('⚠️ OAuth URL validation failed, but proceeding anyway:', fetchError.message);
|
|
298
|
+
return true; // Allow network errors as they might be temporary
|
|
299
|
+
}
|
|
300
|
+
} catch (error) {
|
|
301
|
+
console.warn('⚠️ OAuth URL validation error, but proceeding anyway:', error);
|
|
302
|
+
return true; // Allow validation errors to not block the flow
|
|
303
|
+
}
|
|
304
|
+
};
|
|
305
|
+
|
|
194
306
|
/**
|
|
195
307
|
* Initiates the native SDK authentication flow for a platform
|
|
196
308
|
* @param platform The platform to authenticate with
|
|
@@ -450,25 +562,58 @@ export const isOAuthCallback = url => {
|
|
|
450
562
|
export const testApiConnectivity = async () => {
|
|
451
563
|
try {
|
|
452
564
|
console.log('🔍 Testing connectivity to Onairos API...');
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
565
|
+
|
|
566
|
+
// Test multiple endpoints for better reliability
|
|
567
|
+
const testEndpoints = ['https://api2.onairos.uk/health', 'https://api2.onairos.uk' // Base URL
|
|
568
|
+
];
|
|
569
|
+
let lastError = null;
|
|
570
|
+
for (const endpoint of testEndpoints) {
|
|
571
|
+
try {
|
|
572
|
+
console.log(`🔍 Testing endpoint: ${endpoint}`);
|
|
573
|
+
const controller = new AbortController();
|
|
574
|
+
const timeoutId = setTimeout(() => controller.abort(), 10000); // 10 second timeout
|
|
575
|
+
|
|
576
|
+
const response = await fetch(endpoint, {
|
|
577
|
+
method: 'GET',
|
|
578
|
+
headers: {
|
|
579
|
+
'Content-Type': 'application/json',
|
|
580
|
+
'User-Agent': 'OnairosReactNative/1.0'
|
|
581
|
+
},
|
|
582
|
+
signal: controller.signal
|
|
583
|
+
});
|
|
584
|
+
clearTimeout(timeoutId);
|
|
585
|
+
console.log(`🌐 API connectivity test response for ${endpoint}:`, response.status);
|
|
586
|
+
if (response.ok || response.status === 404) {
|
|
587
|
+
// Accept 404 as it means the server is reachable
|
|
588
|
+
console.log('✅ API server is reachable');
|
|
589
|
+
return {
|
|
590
|
+
success: true
|
|
591
|
+
};
|
|
592
|
+
} else {
|
|
593
|
+
console.log(`⚠️ API server responded with status ${response.status} for ${endpoint}`);
|
|
594
|
+
lastError = `API server error: ${response.status}`;
|
|
595
|
+
// Continue to next endpoint
|
|
596
|
+
}
|
|
597
|
+
} catch (fetchError) {
|
|
598
|
+
console.log(`❌ Failed to reach ${endpoint}:`, fetchError);
|
|
599
|
+
if (fetchError.name === 'AbortError') {
|
|
600
|
+
lastError = 'Connection timeout - API server took too long to respond';
|
|
601
|
+
} else if (fetchError.message.includes('Network request failed')) {
|
|
602
|
+
lastError = 'Network error - check your internet connection';
|
|
603
|
+
} else if (fetchError.message.includes('not connected to the internet')) {
|
|
604
|
+
lastError = 'No internet connection';
|
|
605
|
+
} else {
|
|
606
|
+
lastError = `Network error: ${fetchError.message}`;
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
// Continue to next endpoint
|
|
457
610
|
}
|
|
458
|
-
});
|
|
459
|
-
console.log('🌐 API connectivity test response:', response.status);
|
|
460
|
-
if (response.ok) {
|
|
461
|
-
console.log('✅ API server is reachable');
|
|
462
|
-
return {
|
|
463
|
-
success: true
|
|
464
|
-
};
|
|
465
|
-
} else {
|
|
466
|
-
console.log('⚠️ API server responded with error:', response.status);
|
|
467
|
-
return {
|
|
468
|
-
success: false,
|
|
469
|
-
error: `API server error: ${response.status}`
|
|
470
|
-
};
|
|
471
611
|
}
|
|
612
|
+
console.error('❌ All API connectivity tests failed');
|
|
613
|
+
return {
|
|
614
|
+
success: false,
|
|
615
|
+
error: lastError || 'Cannot reach API server'
|
|
616
|
+
};
|
|
472
617
|
} catch (error) {
|
|
473
618
|
console.error('❌ API connectivity test failed:', error);
|
|
474
619
|
return {
|