@@ -69,7 +69,10 @@ const authSetup = function () {
6969 ? 'localstorage'
7070 : 'memory' ,
7171 useRefreshTokens : useRefreshTokens
72- } ) . then ( _init ) ;
72+ } ) . then ( _init ) . catch ( function ( e ) {
73+ logger ( "Error occurred in initializing auth0 object: " , e ) ;
74+ window . location . reload ( ) ;
75+ } ) ;
7376 window . addEventListener ( "message" , receiveMessage , false ) ;
7477 } ;
7578
@@ -90,8 +93,8 @@ const authSetup = function () {
9093 } else if ( ! isLoggedIn ( ) && returnAppUrl ) {
9194 login ( ) ;
9295 } else if ( qs [ 'error' ] && qs [ 'state' ] ) {
93- logger ( "Error in executing callback(): " , qs [ 'error_description' ] ) ;
94- showLoginError ( qs [ 'error_description' ] , appUrl ) ;
96+ logger ( "Error in executing callback(): " , qs [ 'error_description' ] ) ;
97+ showLoginError ( qs [ 'error_description' ] , appUrl ) ;
9598 } else {
9699 logger ( "User already logged in" , true ) ;
97100 postLogin ( ) ;
@@ -218,7 +221,7 @@ const authSetup = function () {
218221 }
219222
220223 const isLoggedIn = function ( ) {
221- var token = getCookie ( tcJWTCookie ) ;
224+ var token = getCookie ( v3JWTCookie ) ;
222225 return token ? ! isTokenExpired ( token ) : false ;
223226 } ;
224227
@@ -410,8 +413,8 @@ const authSetup = function () {
410413 }
411414
412415 /**
413- * will receive message from iframe
414- */
416+ * will receive message from iframe
417+ */
415418 function receiveMessage ( e ) {
416419 logger ( "received Event:" , e ) ;
417420 if ( e . data && e . data . type && e . origin ) {
@@ -420,7 +423,83 @@ const authSetup = function () {
420423 logout ( ) ;
421424 }
422425 }
426+ if ( e . data && e . data . type && e . data . type === "REFRESH_TOKEN" ) {
427+ const token = getCookie ( v3JWTCookie ) ;
428+ const failed = {
429+ type : "FAILURE"
430+ } ;
431+ const success = {
432+ type : "SUCCESS"
433+ } ;
434+
435+ const informIt = function ( payload ) {
436+ e . source . postMessage ( payload , e . origin ) ;
437+ }
438+ try {
439+ const storeRefreshedToken = function ( aObj ) {
440+ aObj . getIdTokenClaims ( ) . then ( function ( claims ) {
441+ idToken = claims . __raw ;
442+ let userActive = false ;
443+ Object . keys ( claims ) . findIndex ( function ( key ) {
444+ if ( key . includes ( 'active' ) ) {
445+ userActive = claims [ key ] ;
446+ return true ;
447+ }
448+ return false ;
449+ } ) ;
450+ if ( userActive ) {
451+ let tcsso = '' ;
452+ Object . keys ( claims ) . findIndex ( function ( key ) {
453+ if ( key . includes ( tcSSOCookie ) ) {
454+ tcsso = claims [ key ] ;
455+ return true ;
456+ }
457+ return false ;
458+ } ) ;
459+ logger ( 'Storing refreshed token...' , true ) ;
460+ setCookie ( tcJWTCookie , idToken , cookieExpireIn ) ;
461+ setCookie ( v3JWTCookie , idToken , cookieExpireIn ) ;
462+ setCookie ( tcSSOCookie , tcsso , cookieExpireIn ) ;
463+ informIt ( success ) ;
464+ } else {
465+ logger ( "Refeshed token - user active ? " , userActive ) ;
466+ informIt ( failed ) ;
467+ }
468+ } ) . catch ( function ( err ) {
469+ logger ( "Refeshed token - error in fetching token from auth0: " , err ) ;
470+ informIt ( failed ) ;
471+ } ) ;
472+ } ;
473+
474+ const getToken = function ( aObj ) {
475+ aObj . getTokenSilently ( { timeoutInSeconds : 60 } ) . then ( function ( token ) {
476+ storeRefreshedToken ( aObj ) ;
477+ } ) . catch ( function ( err ) {
478+ logger ( "receiveMessage: Error in refreshing token through iframe:" , err )
479+ informIt ( failed ) ;
480+ } ) ;
423481
482+ } ;
483+
484+ // main execution start here
485+ if ( token && ! isTokenExpired ( token ) ) {
486+ informIt ( success ) ;
487+ } else if ( ! token ) {
488+ informIt ( failed ) ;
489+ } else {
490+ if ( auth0 ) {
491+ getToken ( auth0 ) ;
492+ } else {
493+ informIt ( failed ) ;
494+ }
495+ }
496+ } catch ( e ) {
497+ logger ( "error occured in iframe handler:" , e . message ) ;
498+ informIt ( failed ) ;
499+ }
500+ } else {
501+ // do nothing
502+ }
424503 }
425504
426505 function changeWindowMessage ( ) {
0 commit comments