diff --git a/platform/viewer/src/OHIFStandaloneViewer.js b/platform/viewer/src/OHIFStandaloneViewer.js index d5e3cf8f1..9d0aedac1 100644 --- a/platform/viewer/src/OHIFStandaloneViewer.js +++ b/platform/viewer/src/OHIFStandaloneViewer.js @@ -83,6 +83,44 @@ class OHIFStandaloneViewer extends Component { path="/callback" render={() => } /> + { + const queryParams = new URLSearchParams( + this.props.location.search + ); + const iss = queryParams.get('iss'); + const loginHint = queryParams.get('login_hint'); + const targetLinkUri = queryParams.get('target_link_uri'); + const oidcAuthority = + appConfig.oidc !== null && appConfig.oidc[0].authority; + if (iss !== oidcAuthority) { + console.error( + 'iss of /login does not match the oidc authority' + ); + return null; + } + + userManager.removeUser().then(() => { + if (targetLinkUri !== null) { + sessionStorage.setItem( + 'ohif-redirect-to', + new URL(targetLinkUri).pathname + ); + } else { + sessionStorage.setItem('ohif-redirect-to', '/'); + } + + if (loginHint !== null) { + userManager.signinRedirect({ login_hint: loginHint }); + } else { + userManager.signinRedirect(); + } + }); + + return null; + }} + /> { userManager.getUser().then(user => {