我目前正在开发一个项目,我的后端使用 Spring Boot、Spring security + keycloak 并在 localhost:8081 上运行。
我的前端(svelte)运行在 http://127.0.0.1:5173/ 上,并且 url http://127.0.0.1:5173/products 需要从 localhost:8081/products 访问数据(需要一个登录)但没有出现来自 keycloak 的登录页面。
换句话说,我想要实现的目标: 我希望网址http://127.0.0.1:5173/products重定向到localhost:8081/products,它重定向到keycloak登录页面,成功登录后我想返回到http://127.0.0.1: 5173/产品 我可以在其中看到数据。
这个问题有一个优雅的解决方案吗?我真的被这个问题困扰了,这是我的第一个项目。
提前致谢!
一些 OAuth2 措辞:
与任何其他基于 Javascript 的 Web 应用程序(Angular、React、Vue 等)一样,有两个相同的选项可用于保护 Svelte 应用程序:
spring-cloud-gateway
可以配置为 BFF(TokenRelay
过滤器和带有 oauth2Login
的 Spring OAuth2 客户端配置)。我已经在 Baeldung 上写了一个教程。使用 JWT 解码器将 Spring API 配置为安全资源服务器。
我编写了一组教程,用于使用 OAuth2 配置 Keycloak 和 Spring 应用程序。