Angular15+Keycloak20.0.5页面刷新后跳转至登录页问题求助
问题:页面刷新/新标签打开时被重定向到Keycloak登录页
环境与配置
- 技术栈:Angular 15 + Spring Boot,Keycloak 20.0.5作为IAM解决方案
- 部署方式:前端应用、Keycloak及Spring Boot微服务均部署在EKS集群,前端与Keycloak分属不同集群
- 前端Kubernetes服务名:main-frontend-service
- 应用访问URL:http://a************.amazonaws.com/main-frontend
- Keycloak访问URL:http://b************.amazonaws.com/keycloak-service
- Keycloak已创建公开客户端:web-application
问题详情
用户在刷新页面、复制页面链接到新标签页打开时,会被强制重定向至Keycloak登录页。本地运行该应用时无此问题。
相关配置代码
前端Keycloak初始化代码
import {KeycloakService} from "keycloak-angular"; import {environment} from "../../environments/environment"; export function initializeKeycloak(keycloak: KeycloakService) { return () => keycloak.init({ config: { url: `${environment.keycloakConfig.url}`, realm: `${environment.keycloakConfig.realm}`, clientId: `${environment.keycloakConfig.clientId}`, }, initOptions: { // checkLoginIframe: true, // checkLoginIframeInterval: 300, onLoad: 'login-required', // silentCheckSsoRedirectUri: // window.location.origin + '/assets/silent-check-sso.html' }, }); }
Keycloak客户端配置
- Root URL:http://a************.amazonaws.com/main-frontend
- Redirect URL:/main-frontend
Kubernetes Nginx路由配置
paths: - backend: service: name: main-frontend-service port: number: 80 path: /(/|$)(.*) pathType: Prefix - backend: service: name: main-frontend-service port: number: 80 path: /main-frontend(/|$)(.*) pathType: Prefix
补充架构说明
所有后端API请求均通过集成Spring Security与Keycloak的spring-gateway-service调用,示例API地址:http:a*********.amazonaws.com/gateway-service/service-a/api/
内容的提问来源于stack exchange,提问作者iuhettiarachchi
相关产品推荐
相关产品推荐

