如何使用部分反向渠道实现Keycloak Authorization_code?

时间:2019-10-01 11:12:52

标签: java reactjs spring-boot oauth-2.0 keycloak

我在我的应用程序中实现了KeyCloak Authorization_Code流,该应用程序的前端是ReactJs,后端是SpringBoot。

我在两端都使用了KeyCloak适配器,它工作得很好,但是整个流程(即在浏览器端进行代码获取和交换令牌)意味着前端渠道。

现在,我要对其进行一些修改,以使其仅在浏览器上获取Auth_code,然后将该auth_code发送到服务器,然后服务器将与KeyCloak的令牌交换代码,然后将其发送回浏览器,并且浏览器将保存在缓存中。

我检查了许多来源,但没有找到任何有关这种方法的参考。

我尝试达到一些Rest端点,但它们使我进入Auth_Code流并最终给出令牌

其他端点http://localhost:8081/auth/realms/book-shop/protocol/openid-connect/auth

这是我在React中的配置

componentDidMount() {
        const keycloak = Keycloak({
            "realm": "book-shop",
            "url": "http://localhost:8081/auth",
            "clientId" : "book-shop-main",
            "ssl-required": "external",
            "credentials":{
                "secret" : "5dfd7e2c-ab12-4517-aad7-8bd063ce694b"
            }
        });

        keycloak.init({onLoad: 'login-required'}).then(authenticated => {
            this.setState({ keycloak: keycloak, authenticated: authenticated })
            console.log(this.state);
            localStorage.setItem("react-token", keycloak.token);
            localStorage.setItem("react-refresh-token", keycloak.refreshToken);
            //this.props.history.push('/books');
        });
    }

我希望可以通过任何方式在浏览器端获取auth_code,然后在服务器端交换令牌。

0 个答案:

没有答案