@@ -5,6 +5,7 @@ import { ThirdwebSDK, ChainIdOrName } from "@thirdweb-dev/sdk";
5
5
import { ThirdwebStorage } from "@thirdweb-dev/storage" ;
6
6
import {
7
7
DAppMetaData ,
8
+ EmbeddedWalletOauthStrategy ,
8
9
SmartWalletConfig ,
9
10
walletIds ,
10
11
} from "@thirdweb-dev/wallets" ;
@@ -281,15 +282,31 @@ class ThirdwebBridge implements TWBridge {
281
282
chainId : chainIdNumber ,
282
283
authResult,
283
284
} ) ;
284
- } else if ( authOptionsParsed . authProvider === 1 ) {
285
- // GoogleManaged
286
- const googleWindow = this . openGoogleSignInWindow ( ) ;
287
- if ( ! googleWindow ) {
288
- throw new Error ( "Failed to open google login window" ) ;
285
+ } else if ( authOptionsParsed . authProvider < 4 ) {
286
+ // OAuth
287
+ let authProvider : EmbeddedWalletOauthStrategy ;
288
+ switch ( authOptionsParsed . authProvider ) {
289
+ case 1 :
290
+ authProvider = "google" ;
291
+ break ;
292
+ case 2 :
293
+ authProvider = "apple" ;
294
+ break ;
295
+ case 3 :
296
+ authProvider = "facebook" ;
297
+ break ;
298
+ default :
299
+ throw new Error (
300
+ "Invalid auth provider: " + authOptionsParsed . authProvider ,
301
+ ) ;
302
+ }
303
+ const popupWindow = this . openPopupWindow ( ) ;
304
+ if ( ! popupWindow ) {
305
+ throw new Error ( "Failed to open login window" ) ;
289
306
}
290
307
const authResult = await embeddedWallet . authenticate ( {
291
- strategy : "google" ,
292
- openedWindow : googleWindow ,
308
+ strategy : authProvider ,
309
+ openedWindow : popupWindow ,
293
310
closeOpenedWindow : ( openedWindow ) => {
294
311
openedWindow . close ( ) ;
295
312
} ,
@@ -298,7 +315,7 @@ class ThirdwebBridge implements TWBridge {
298
315
chainId : chainIdNumber ,
299
316
authResult,
300
317
} ) ;
301
- } else if ( authOptionsParsed . authProvider === 2 ) {
318
+ } else if ( authOptionsParsed . authProvider === 4 ) {
302
319
// CustomAuth
303
320
const authResult = await embeddedWallet . authenticate ( {
304
321
strategy : "jwt" ,
@@ -627,10 +644,10 @@ class ThirdwebBridge implements TWBridge {
627
644
return localWallet ;
628
645
}
629
646
630
- public openGoogleSignInWindow ( ) {
647
+ public openPopupWindow ( ) {
631
648
const win = window . open ( "" , undefined , "width=350, height=500" ) ;
632
649
if ( win ) {
633
- win . document . title = "Sign In - Google Accounts " ;
650
+ win . document . title = "Sign In - OAuth " ;
634
651
win . document . body . innerHTML = `
635
652
<svg class="loader" viewBox="0 0 50 50">
636
653
<circle
0 commit comments