Keycloak 在页面刷新时重定向到登录

Ran*_*uff 6 keycloak angular5

我在我的 Angular 5 应用程序中使用 keycloak JavaScript 适配器,虽然我的登录和重定向工作正常,但问题是每当我刷新我的 ng 应用程序时,它会再次要求 keycloak 登录,尽管我看到我的会话仍然在 /auth/realms 上处于活动状态/{形象一个领域名称}/帐户。

正如我从 keycloak JS Adapter 文档https://www.keycloak.org/docs/3.0/securing_apps/topics/oidc/javascript-adapter.html 中了解到的那样,当 onLoad 设置为 login-required 时,它会进行身份验证如果用户已登录到 Keycloak,则客户端显示,否则显示登录页面。但就我而言,似乎需要一秒钟才能注销我,因为它总是将我重定向到 keycloak 的登录页面。

ahm*_*och 6

您需要将先前登录时保存的令牌传递给 keycloak init 构造函数。如果您正在使用授权流程(标准),那么也刷新令牌。像这样。

// load previous tokens, saved after successful login of keycloak success callback
    const token = localStorage.getItem('kc_token');
    const refreshToken = localStorage.getItem('kc_refreshToken');
    // pass to keycloak init
    keycloak.init({ onLoad: 'login-required', token, refreshToken }).then(
    success=>{
      localStorage.setItem('kc_token', keycloak.token);
      localStorage.setItem('kc_refreshToken', keycloak.refreshToken);
      //load your app from here
  });
Run Code Online (Sandbox Code Playgroud)

  • @Stuck但是如果您查看网络请求,KC 令牌已经可供浏览器使用,并且它们仅在 X 秒内有效。将其存储在本地或会话存储中如何使情况变得更糟? (4认同)