File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -517,11 +517,15 @@ export const startMGMTListeners = (): AppThunk<Promise<void>> => async (
517517 const { host, protocol } = new URL ( url ) ;
518518
519519 if ( origin && origin === `${ protocol } //${ host } ` ) {
520- const { data : token } = data ;
520+ const { data : token , idToken } = data ;
521521
522522 await ( await managementService ) . authentication . setAccessToken ( token ) ;
523523 await ( await managementService ) . reAuthenticate ( ) ;
524524
525+ if ( idToken ) {
526+ localStorage . setItem ( 'oidcIdToken' , idToken ) ;
527+ }
528+
525529 dispatch ( updateLoginState ( token ) ) ;
526530
527531 // Populate management.username from OIDC user data
Original file line number Diff line number Diff line change @@ -179,6 +179,10 @@ export const logout = (): AppThunk<Promise<void>> => async (
179179
180180 const tenantId = await dispatch ( getTenantFromFqdn ( window . location . hostname ) ) ;
181181
182+ const idToken = localStorage . getItem ( 'oidcIdToken' ) ;
183+
184+ localStorage . removeItem ( 'oidcIdToken' ) ;
185+
182186 await ( await managementService ) . authentication . removeAccessToken ( ) ;
183187
184188 dispatch ( updateLoginState ( ) ) ;
@@ -192,7 +196,13 @@ export const logout = (): AppThunk<Promise<void>> => async (
192196 return logger . error ( 'logout() | no tenant found' ) ;
193197
194198 } else {
195- window . open ( `${ config . managementUrl } /auth/logout?tenantId=${ tenantId } ` , 'logoutWindow' ) ;
199+ const params = new URLSearchParams ( { tenantId : String ( tenantId ) } ) ;
200+
201+ if ( idToken ) {
202+ params . set ( 'id_token_hint' , idToken ) ;
203+ }
204+
205+ window . open ( `${ config . managementUrl } /auth/logout?${ params . toString ( ) } ` , 'logoutWindow' ) ;
196206 }
197207} ;
198208
Original file line number Diff line number Diff line change @@ -306,11 +306,15 @@ export const startListeners = (): AppThunk<Promise<void>> => async (
306306 const { host, protocol } = new URL ( url ) ;
307307
308308 if ( origin && origin === `${ protocol } //${ host } ` ) {
309- const { data : token } = data ;
309+ const { data : token , idToken } = data ;
310310
311311 await ( await managementService ) . authentication . setAccessToken ( token ) ;
312312 await ( await managementService ) . reAuthenticate ( ) ;
313313
314+ if ( idToken ) {
315+ localStorage . setItem ( 'oidcIdToken' , idToken ) ;
316+ }
317+
314318 dispatch ( updateLoginState ( token ) ) ;
315319
316320 // Populate management.username from OIDC user data
You can’t perform that action at this time.
0 commit comments