Проблема в кнопке Browser Back после аутентификации KeyCloak в приложении ReactJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Проблема в кнопке Browser Back после аутентификации KeyCloak в приложении React

Сообщение Anonymous »

В моем приложении React, когда пользователь аутентифицирует с KeyCloak, и после перенаправления обратно из KeyCloak (обновления страницы React), при нажатии кнопки Browser Back пользователь не может перейти к предыдущему маршруту React и снова перенаправляется на keyCloak Url.
Я пробовал следующие решения и все они, но после того, как они переосмысливают. Работа:
Я использую React-oidc-context .
Решение 1

Код: Выделить всё

window.onpopstate = function() {
navigate("/component1");
}
< /code>
Решение 2 < /p>
window.history.pushState({}, '', "/component1");
< /code>
Решение 3 < /p>
window.addEventListener("popstate", () => {
navigate("/component1");
});
Мне нужно упомянуть, что я протестировал все вышеперечисленные коды с помощью useeffect , но ничего не сработало.
Это конфигурации KeyCloak в React:

Код: Выделить всё

  export const userManager = new UserManager({
authority: 'https://example.com/realms/example-realm',
client_id: 'example-clientid',
redirect_uri: 'https://www.example.com/',
response_type: 'code',
post_logout_redirect_uri: window.location.origin
});

export const onSigninCallback = () => {
window.history.replaceState({}, document.title, "/");
};
< /code>
Затем я использую вышеуказанные конфигурации в index.tsx: < /p>
import { BrowserRouter } from 'react-router-dom';
import { AuthProvider} from 'react-oidc-context';
import { onSigninCallback, userManager } from './config';

ReactDOM.render(









,
document.getElementById("root")

);
< /code>
Затем в компоненте я проверяю, является ли пользователь аутентифицирован или нет. После аутентификации, отсюда я хочу вернуться к предыдущему маршруту, в котором я был, но когда нажимаю назад, я снова перенаправляюсь на KeyCloak: < /p>
const [hasTriedSignin, setHasTriedSignin] = useState(false);
const nav=useNavigate();
const auth = useAuth();
useEffect(() => {
if (!hasAuthParams() && !auth.isAuthenticated && !auth.activeNavigator && !auth.isLoading && !hasTriedSignin) {
auth.signinRedirect();
setHasTriedSignin(true);
}

});
window.onpopstate = function() {
navigate("/previousRoute");
}
В разделе конфигурации KeyCloak я даже пытался не использовать onsignincallback , чтобы избежать каких -либо изменений истории, но не помог.


Подробнее здесь: https://stackoverflow.com/questions/796 ... applicatio
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»