@@ -69,7 +69,10 @@ const authSetup = function () {
69
69
? 'localstorage'
70
70
: 'memory' ,
71
71
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
+ } ) ;
73
76
window . addEventListener ( "message" , receiveMessage , false ) ;
74
77
} ;
75
78
@@ -90,8 +93,8 @@ const authSetup = function () {
90
93
} else if ( ! isLoggedIn ( ) && returnAppUrl ) {
91
94
login ( ) ;
92
95
} 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 ) ;
95
98
} else {
96
99
logger ( "User already logged in" , true ) ;
97
100
postLogin ( ) ;
@@ -218,7 +221,7 @@ const authSetup = function () {
218
221
}
219
222
220
223
const isLoggedIn = function ( ) {
221
- var token = getCookie ( tcJWTCookie ) ;
224
+ var token = getCookie ( v3JWTCookie ) ;
222
225
return token ? ! isTokenExpired ( token ) : false ;
223
226
} ;
224
227
@@ -410,8 +413,8 @@ const authSetup = function () {
410
413
}
411
414
412
415
/**
413
- * will receive message from iframe
414
- */
416
+ * will receive message from iframe
417
+ */
415
418
function receiveMessage ( e ) {
416
419
logger ( "received Event:" , e ) ;
417
420
if ( e . data && e . data . type && e . origin ) {
@@ -420,7 +423,83 @@ const authSetup = function () {
420
423
logout ( ) ;
421
424
}
422
425
}
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
+ } ) ;
423
481
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
+ }
424
503
}
425
504
426
505
function changeWindowMessage ( ) {
0 commit comments