You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keycloak Angular适配器调用login-status-iframe.html返回204是否正常?

问题:Keycloak JS适配器发起的login-status-iframe请求返回204是否正常?

我正在将Keycloak(26.1)与Angular(19)应用集成,想验证当前观察到的现象是否正常。

当前行为

Keycloak JS适配器会发起GET请求至:

http://localhost:8080/realms/my_realm/protocol/openid-connect/login-status-iframe.html/init?client_id=my-client&origin=http%3A%2F%2Flocalhost%3A4200

该请求返回状态码204,且Keycloak日志中无错误信息。

环境详情

Keycloak客户端配置

Web Origins: http://localhost:4200
Valid redirect URIs: http://localhost:4200/*

Keycloak Docker Compose配置

services:
  keycloak:
    image: quay.io/keycloak/keycloak:26.1
    environment:
      KC_DB: postgres
      KC_DB_URL: postgres_url
      KC_DB_USERNAME: postgres
      KC_DB_PASSWORD: password
      KC_BOOTSTRAP_ADMIN_USERNAME: admin
      KC_BOOTSTRAP_ADMIN_PASSWORD: admin
      KC_HTTP_ENABLED: true
      KC_HEALTH_ENABLED: true
    command: start-dev
    ports:
      - "8080:8080"
    networks:
      - keycloak_network
    volumes:
      - ../keycloak/themes:/opt/keycloak/providers/

networks:
  keycloak_network:
    external: true

Angular KeycloakProvider配置

provideKeycloak({
    config: {
      realm: 'my_realm',
      url: 'http://localhost:8080',
      clientId: 'my-client'
    },
    initOptions: {
      onLoad: 'check-sso',
      silentCheckSsoRedirectUri: window.location.origin + '../assets/silent-check-sso.html',
    },

    features: [
      withAutoRefreshToken({
        onInactivityTimeout: 'logout',
        sessionTimeout: 60000
      })
    ],
    providers: [
      AutoRefreshTokenService,
      UserActivityService,
      {
        provide: INCLUDE_BEARER_TOKEN_INTERCEPTOR_CONFIG,
        useValue: [localhostCondition]
      }
    ]
  });

Angular依赖包版本

"keycloak-angular": "^19.0.2",
"keycloak-js": "^26.1.4",

请问该请求返回204的情况是否属于正常行为?


答案

这是完全正常的行为。

Keycloak的login-status-iframe.html/init接口作用是初始化会话状态检测的iframe,用于在后台静默监控用户的Keycloak会话状态(比如是否已在其他设备登出)。返回204状态码表示请求成功,但没有需要返回的实体内容——这个接口本身不需要返回任何页面或数据,只是完成初始化逻辑(比如设置必要的Cookie或会话标记)。

结合你的配置来看:

  • 客户端的Web Origins和Valid redirect URIs配置正确,符合跨域要求
  • Keycloak日志无错误,说明请求没有触发任何异常
  • 你启用了check-sso和自动刷新令牌功能,适配器发起这个请求正是为了支撑这些会话管理特性

无需对此现象做任何调整,这是Keycloak JS适配器正常工作的表现。

内容的提问来源于stack exchange,提问作者rafaelpadu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 14:12:40