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 => {