Keycloak защищает только определенные маршруты [Клиентская сторона] - PullRequest
0 голосов
/ 28 июня 2018

Я реализовал аутентификацию keycloak с моим приложением ReactJS. В настоящее время все мои маршруты защищены следующим образом.

keyCloak.init({
    onLoad: 'login-required',
    checkLoginIframe: false
}).success(authenticated => {
    if (authenticated) {
        ReactDOM.render(Application, document.getElementById('root'));
    }
});

Я реагирую на приложение только при успешной аутентификации. Но теперь мне нужно иметь несколько открытых путей, которые не требуют аутентификации с помощью ключевого ключа, куда любой пользователь может пойти и проверить. Есть ли какой-нибудь правильный способ добиться этого?

1 Ответ

0 голосов
/ 04 июля 2018

Вы можете создавать разные роли в Keycloak. После аутентификации в приложении React передайте объект Keycloak в ваше приложение, где у вас есть маршрутизатор с путями. Там вы можете проверить, какие разрешения есть у пользователя, а также разрешить или запретить маршруты на его основе.

render() {
    let isAdmin = this.props.keycloak.hasRealmRole('admin');
    if(isAdmin){
        return (
            <div className="App">
                Router here
            </div>
        );
    }
    else{
        return (
            <div className="App">
                Router here
            </div>
        );
    }
}

Другой вариант - не оборачивать все приложение Keycloak, а только теми компонентами, которые вы пытаетесь обезопасить.

...