Keycloak + AngularJS:登录重定向url后持久保存URL哈希片段

时间:2016-05-02 05:44:51

标签: angularjs keycloak

我们正在使用Keycloak
http://keycloak.github.io/docs/userguide/keycloak-server/html_single/index.html

和Angularjs的问题是我们需要首先加载Angular,因为我们在主页上的应用程序显示公共信息,当用户去说“Checkout”然后我们想要显示登录屏幕,你有什么想法吗?我们怎么能这样做?

我们正在获取循环网址

http://192.168.3.34:8080/?redirect_fragment=%2Fapp%2Fdashboard
            &redirect_fragment=%2Fapp%2Fdashboard
            &prompt=none&redirect_fragment=%2Fapp%2Fdashboard&prompt=none           &redirect_fragment=%2Fapp%2Fdashboard&prompt=none&redirect_fragment=%2Fapp%2Fdashboard&prompt=none&redirect_fragment=%2Fapp%2Fdashboard&prompt=none&redirect_fragment=%2Fapp%2Fdashboard&prompt=none&redirect_fragment=%2Fapp%2Fdashboard&prompt=none&redirect_fragment=%2Fapp%2Fdashboard&prompt=none&redirect_fragment=%2Fapp%2Fdashboard&prompt=none&redirect_fragment=%2Fapp%2Fdashboard&prompt=none&redirect_fragment=%2Fapp%2Fdashboard&prompt=none&redirect_fragment=%2Fapp%2Fdashboard&prompt=none&redirect_fragment=%2Fapp%2Fdashboard&prompt=none#
state=4674d401-5442-4459-8706-0b77443011bd&code=LnD4lRypAql5QkEO1mwtWHpaff1XaUeeACpY7-GP220.b6a0f296-e1a8-4b12-b34a-b1dcefa9a94f

注意我们正在使用keycloak.login();,但它不起作用Keycloak服务器不接受重定向网址上的"#/"

由于 弗朗西斯科

1 个答案:

答案 0 :(得分:0)

我自己遇到了这个问题。通过修改密钥斗篷解决了它。 主题/base/login/login.ftl:

 <form id="kc-form-login" onsubmit="login.disabled = true; return true;" action="${url.loginAction}" method="post">

更改为:

<form id="kc-form-login" onsubmit="this.action = this.action + window.location.hash; login.disabled = true; return true;" action="${url.loginAction}" method="post">

提交时,它将URL的哈希值附加到表单发布操作中。解决此问题的关键是发现哈希永远不会发送到服务器,而是由Web浏览器完全控制。