我在我的应用程序中实现了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,然后在服务器端交换令牌。