keycloak - 如何在使用 Keycloak 注销大使 OAuth2 过滤器后指定 redirectUrl?
问题描述
我正在使用大使 OAuth2 过滤器对 Keycloak 执行 OAuth2 授权。对于注销,我使用大使文档中描述的 RP 发起 的注销注销工作正常。但是,我无法弄清楚如何提供 Keycloak 在成功注销后重定向到登录页面所需的重定向 url。结果,用户停留在 keycloak 的空白注销页面上。
RP 发起的注销如下所示
const form = document.createElement('form');
form.method = 'post';
form.action = '/.ambassador/oauth2/logout?realm='+realm;
const xsrfInput = document.createElement('input');
xsrfInput.type = 'hidden';
xsrfInput.name = '_xsrf';
xsrfInput.value = getCookie("ambassador_xsrf."+realm);
form.appendChild(xsrfInput);
document.body.appendChild(form);
form.submit();
我希望大使提供一种将重定向 url 添加为查询参数或其他内容的方法,但我找不到解决方案。有什么建议或解决方法吗?
解决方案
我找到了一个解决方案,这不是最好的解决方案,但您将使用按钮注销。
async function logout() {
const data = new URLSearchParams("realm=keycloak-oauth2-filter.ambassador")
data.append('_xsrf', getCookie("ambassador_xsrf.keycloak-oauth2-filter.ambassador"));
fetch('/.ambassador/oauth2/logout', {
method: 'POST',
body: data
})
.then(function (response) {
if (response.ok) {
return response.text()
} else {
throw "err";
}
})
.then(function (text) {
console.log(text);
})
.catch(function (err) {
console.log(err);
});
}
推荐阅读
- ruby-on-rails - 作业推送到队列,但不处理
- bash - Bash If else 从文件中读取
- angular - 如何将一个数值乘以 10 到 angular7 中 json 的值
- sql - 在 Hive 中计算百分位数时处理 Null
- ios - 当通过单独的方法更改值时,SwiftUI @State 不会触发更新
- php - 基于自定义分类法的 Wordpress tax_query 未显示任何结果
- erlang - 如何在 Erlang 中读取 2 字节浮点数?
- c# - 如何在 .net core 2.2 中自定义问题细节以进行异常处理
- python - OperationalError:学生表没有名为 Fecha 的列
- swift - 将文本文件的内容作为 JSON 传递给 httpBody