![](/img/trans.png)
[英]Server redirect to login url from AngularJs page containing # (hash) sign
[英]Keycloak + AngularJS: persist URL hash fragments after login redirect url
我们正在使用 Keycloak
http://keycloak.github.io/docs/userguide/keycloak-server/html_single/index.html
和 Angularjs 的问题是我们需要先加载 Angular 因为我们在主页上的应用程序显示公共信息,当用户去让我们说“结帐”然后我们想显示登录屏幕,你知道我们怎么做吗?做吗?
我们得到一个循环 URL
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 服务器不接受重定向 URL 上的"#/"
。
谢谢弗朗西斯科
我自己也有这个问题。 通过修改keycloak解决了这个问题。 主题/基础/登录/登录.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 的哈希附加到表单发布操作上。 解决这个问题的关键是发现散列永远不会发送到服务器,而是完全由网络浏览器控制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.