Keycloak onLoad:'check-sso'返回错误=url中的login_required

问题描述 投票:0回答:2

我正在努力使用 keycloak / keycloak-js 登录,目标是验证用户是否已经连接到 keycloak 或没有。为此,我在 keycloak.init 期间使用

onLoad: check-sso

当我有一个用户并单击“模拟”时,它工作正常,但是,如果用户未连接,则网址中出现一秒错误:

http://localhost:8000/#error=login_required&state=... 
我尝试更改提示=“无”,但它什么也没做

我找不到任何方法可以设置静默模式,以便在未登录网址栏时不显示错误?

该项目使用Keycloak-js,Keycloak服务器版本为15.0.2

还是不行

keycloak
2个回答
2
投票

我在使用时也遇到同样的问题

钥匙斗篷: 18.0.1

react-keycloak/web: 3.4.0.

这是因为我尝试使用 keycloak.init 并传递我想要的 init 选项

keycloak.init({
   onLoad: "check-sso",
   silentCheckSsoRedirectUri: window.location.origin + "/silent-check-sso.html",
 })

如 keycloak JS 客户端文档中所述。

但这导致了竞争条件并不断重新刷新页面。

修复方法是将 init 选项直接传递给 ReactKeyCloakProvider

<ReactKeycloakProvider
    authClient={keycloak}
    initOptions={{
      onLoad: "check-sso",
      silentCheckSsoRedirectUri:
        window.location.origin + "/silent-check-sso.html",
    }}
    onEvent={eventLogger}
    onTokens={tokenLogger}
  >
    <BrowserRouter>
      <App />
    </BrowserRouter>
  </ReactKeycloakProvider>

 

示例或文档中都没有明确说明这一点。


0
投票

根据其文档,发生这种情况是因为一些现代浏览器阻止了第三方 cookie。 具有跟踪保护的现代浏览器

© www.soinside.com 2019 - 2024. All rights reserved.