diff --git a/packages/auth/demo/public/index.html b/packages/auth/demo/public/index.html index fde656a9d48..01509d5e1a0 100644 --- a/packages/auth/demo/public/index.html +++ b/packages/auth/demo/public/index.html @@ -853,6 +853,27 @@

Sign in with your CIAM token

+ + +
Initialize Regional Auth
+
+ + +
+ +
+ +
+ + +
Set Token Refresh Handler
+ + +
+
+ + +
Exchange Token
No CIAM token found. User not logged in.
{ + const firebaseToken = await regionalAuth.getFirebaseAccessToken(); + if (firebaseToken) { + firebaseTokenStatus.textContent = + '✅ Firebase token is set: ' + firebaseToken; + } else { + firebaseTokenStatus.textContent = + 'No CIAM token found. User not logged in.'; + } + console.log('firebaseToken after delay: ', firebaseToken); + }, 1000); + localStorage.setItem('regionalAuthTenantId', tenantId); + } catch (error) { + onAuthError(error); + } +} + +function clearRegionalAuthInstance() { + localStorage.removeItem('regionalAuthTenantId'); + localStorage.removeItem('tokenRefreshHandlerType'); // Clear handler choice + $('#tenant-id-input').val(''); + regionalAuth = null; + $('#regional-auth-status').text('regionalAuth is not initialized'); + $('#token-handler-status').text('Token refresh handler is not set.'); +} + function onExchangeToken(event) { event.preventDefault(); + if (!validateRegionalAuth()) { + return; + } + const byoCiamInput = document.getElementById('byo-ciam-token'); const idpConfigId = document.getElementById('idp-config-id'); const firebaseTokenStatus = document.getElementById('firebase-token-status'); @@ -1610,7 +1677,46 @@ function onExchangeToken(event) { .catch(error => { (firebaseTokenStatus.textContent = 'Error exchanging token: '), error; console.error('Error exchanging token:', error); + onAuthError(error); + }); +} + +function onSetSuccessfulHandlerClick() { + if (!validateRegionalAuth()) { + return; + } + + const tokenRefreshHandler = new TokenRefreshHandlerImpl(); + regionalAuth.setTokenRefreshHandler(tokenRefreshHandler); + localStorage.setItem('tokenRefreshHandlerType', 'success'); + $('#token-handler-status').text( + '✅ Token refresh handler is set to success.' + ); +} + +function onSetFailureHandlerClick() { + if (!validateRegionalAuth()) { + return; + } + + const tokenRefreshHandler = new TokenRefreshHandlerFailureImpl(); + regionalAuth.setTokenRefreshHandler(tokenRefreshHandler); + localStorage.setItem('tokenRefreshHandlerType', 'failure'); + $('#token-handler-status').text( + '✅ Token refresh handler is set to failure.' + ); +} + +function validateRegionalAuth() { + if (!regionalAuth) { + onAuthError({ + code: 'auth-not-initialized', + message: + 'Regional Auth is not initialized. Please enter a Tenant ID and initialize.' }); + return false; + } + return true; } /** @@ -2158,32 +2264,11 @@ function initApp() { connectAuthEmulator(auth, AUTH_EMULATOR_URL); } - let tenantConfig = { - 'location': 'global', - 'tenantId': 'Foo-e2e-tenant-001' - }; - const regionalApp = initializeApp(config, `${auth.name}-rgcip`); - - regionalAuth = initializeAuth(regionalApp, { - persistence: indexedDBLocalPersistence, - popupRedirectResolver: browserPopupRedirectResolver, - tenantConfig: tenantConfig - }); - const tokenRefreshHandler = new TokenRefreshHandlerImpl(); - regionalAuth.setTokenRefreshHandler(tokenRefreshHandler); - - const firebaseTokenStatus = document.getElementById('firebase-token-status'); - setTimeout(async () => { - const firebaseToken = await regionalAuth.getFirebaseAccessToken(); - if (firebaseToken) { - firebaseTokenStatus.textContent = - '✅ Firebase token is set: ' + firebaseToken; - } else { - firebaseTokenStatus.textContent = - 'No CIAM token found. User not logged in.'; - } - console.log('firebaseToken after delay: ', firebaseToken); - }, 1000); + const persistedTenantId = localStorage.getItem('regionalAuthTenantId'); + if (persistedTenantId) { + $('#tenant-id-input').val(persistedTenantId); + onInitializeRegionalAuthClick(); + } tempApp = initializeApp( { @@ -2528,6 +2613,11 @@ function initApp() { // Performs Exchange Token $('#exchange-token').click(onExchangeToken); + + $('#initialize-regional-auth-btn').click(onInitializeRegionalAuthClick); + $('#set-successful-handler-btn').click(onSetSuccessfulHandlerClick); + $('#set-failure-handler-btn').click(onSetFailureHandlerClick); + $('#clear-regional-auth-id-btn').click(clearRegionalAuthInstance); } $(initApp);