fix(oidc): resolve navigation throttling and blank screen during sign-in/sign-out with Keycloak + dcm4chee + Traefik (#5373)
This commit is contained in:
parent
ecf91bdcd4
commit
79473c2ea4
@ -1,12 +1,15 @@
|
|||||||
import React from 'react';
|
import React, { useEffect } from 'react';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
function SignoutCallbackComponent({ userManager }) {
|
function SignoutCallbackComponent({ userManager }) {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
const onRedirectSuccess = (/* user */) => {
|
const onRedirectSuccess = (/* user */) => {
|
||||||
const { pathname, search = '' } = JSON.parse(sessionStorage.getItem('ohif-redirect-to'));
|
const { pathname, search = '' } = JSON.parse(
|
||||||
|
sessionStorage.getItem('ohif-redirect-to')
|
||||||
|
);
|
||||||
|
|
||||||
navigate(`${pathname}?${search}`);
|
navigate(`${pathname}?${search}`);
|
||||||
};
|
};
|
||||||
@ -19,6 +22,7 @@ function SignoutCallbackComponent({ userManager }) {
|
|||||||
.signoutRedirectCallback()
|
.signoutRedirectCallback()
|
||||||
.then(user => onRedirectSuccess(user))
|
.then(user => onRedirectSuccess(user))
|
||||||
.catch(error => onRedirectError(error));
|
.catch(error => onRedirectError(error));
|
||||||
|
}, [navigate, userManager]);
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { useEffect } from 'react';
|
import { useEffect, useMemo } from 'react';
|
||||||
import { Route, Routes, useLocation, useNavigate } from 'react-router';
|
import { Route, Routes, useLocation, useNavigate } from 'react-router';
|
||||||
import CallbackPage from '../routes/CallbackPage';
|
import CallbackPage from '../routes/CallbackPage';
|
||||||
import SignoutCallbackComponent from '../routes/SignoutCallbackComponent';
|
import SignoutCallbackComponent from '../routes/SignoutCallbackComponent';
|
||||||
@ -94,7 +94,7 @@ function LoginComponent(userManager) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function OpenIdConnectRoutes({ oidc, routerBasename, userAuthenticationService }) {
|
function OpenIdConnectRoutes({ oidc, routerBasename, userAuthenticationService }) {
|
||||||
const userManager = initUserManager(oidc, routerBasename);
|
const userManager = useMemo(() => initUserManager(oidc, routerBasename), [oidc, routerBasename]);
|
||||||
|
|
||||||
const getAuthorizationHeader = () => {
|
const getAuthorizationHeader = () => {
|
||||||
const user = userAuthenticationService.getUser();
|
const user = userAuthenticationService.getUser();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user