@@ -74,7 +74,8 @@ import {
7474 connectAuthEmulator ,
7575 initializeRecaptchaConfig ,
7676 validatePassword ,
77- revokeAccessToken
77+ revokeAccessToken ,
78+ exchangeToken
7879} from '@firebase/auth' ;
7980
8081import { config } from './config' ;
@@ -95,6 +96,7 @@ const AUTH_EMULATOR_URL = 'http://localhost:9099';
9596
9697let app = null ;
9798let auth = null ;
99+ let regionalAuth = null ;
98100let currentTab = null ;
99101let lastUser = null ;
100102let applicationVerifier = null ;
@@ -1506,6 +1508,32 @@ function onFinalizeSignInWithTotpMultiFactor(event) {
15061508 } , onAuthError ) ;
15071509}
15081510
1511+ async function exchangeCIAMToken ( token ) {
1512+ const firebaseToken = await exchangeToken (
1513+ regaionalAuth ,
1514+ idpConfigId = "Bar-e2e-idpconfig-002" ,
1515+ token )
1516+ return firebaseToken ;
1517+ }
1518+
1519+ function onExchangeToken ( event ) {
1520+ event . preventDefault ( ) ;
1521+ const byoCiamInput = document . getElementById ( "byo-ciam-token" ) ;
1522+ const byoCiamSubmit = document . getElementById ( "byo-ciam-submit" ) ;
1523+ const byoCiamResult = document . getElementById ( "byo-ciam-result" ) ;
1524+
1525+ byoCiamResult . textContent = "Exchanging token..." ;
1526+
1527+ exchangeCIAMToken ( byoCiamInput . value )
1528+ . then ( ( response ) => {
1529+ byoCiamResult . textContent = response . accessToken ;
1530+ console . log ( "Token:" , response ) ;
1531+ } )
1532+ . catch ( ( error ) => {
1533+ console . error ( "Error exchanging token:" , error ) ;
1534+ } ) ;
1535+ }
1536+
15091537/**
15101538 * Adds a new row to insert an OAuth custom parameter key/value pair.
15111539 * @param {!jQuery.Event } _event The jQuery event object.
@@ -2051,6 +2079,21 @@ function initApp() {
20512079 connectAuthEmulator ( auth , AUTH_EMULATOR_URL ) ;
20522080 }
20532081
2082+ let tenantConfig = {
2083+ "location" : "global" ,
2084+ "tenantId" : "Foo-e2e-tenant-001"
2085+ } ;
2086+ const regionalApp = initializeApp (
2087+ config ,
2088+ `${ auth . name } -rgcip`
2089+ ) ;
2090+
2091+ regionalAuth = initializeAuth ( regionalApp , {
2092+ persistence : inMemoryPersistence ,
2093+ popupRedirectResolver : browserPopupRedirectResolver ,
2094+ tenantConfig : tenantConfig
2095+ } ) ;
2096+
20542097 tempApp = initializeApp (
20552098 {
20562099 apiKey : config . apiKey ,
@@ -2391,6 +2434,11 @@ function initApp() {
23912434 $ ( '#enroll-mfa-totp-finalize' ) . click ( onFinalizeEnrollWithTotpMultiFactor ) ;
23922435 // Sets tenant for the current auth instance
23932436 $ ( '#set-tenant-btn' ) . click ( onSetTenantIdClick ) ;
2437+
2438+ // Performs Exchange Token
2439+ $ ( '#exchange-token' ) . click (
2440+ onExchangeToken
2441+ ) ;
23942442}
23952443
23962444$ ( initApp ) ;
0 commit comments