【发布时间】:2020-02-27 16:59:55
【问题描述】:
我正在开发一个带有 ReactJS 前端和 Java 后端的应用程序。构建过程包括将 JSX 转换为 bundle.js 文件,然后将其复制到后端项目中,然后将其打包为 WAR 并部署到 Tomcat 服务器。
正常的工作流程涉及到一个javax.servlet.Filter,它拦截所有对服务器的http请求,以查看用户是否经过身份验证。如果不是,它会重定向到 OAuth 服务器进行身份验证。然后将身份验证的响应存储在 http 会话中,并由过滤器使用以允许进一步的请求通过。
所以当 Javascript 代码被执行时,我不必担心用户是否登录。我只是调用一个休息端点/api/getCurrentUser 来从托管bundle.js 的同一服务器获取用户详细信息。一切都在生产中完美运行!
我的问题是我想在不重新部署整个应用程序的情况下调试、更改和测试 ReactJS 代码。部署大约需要 3 分钟,对于我更改的每一行代码来说,这个过程太痛苦了。
在实现 Auth Filter 之前,我使用 Webpack 的 Dev Server 来托管、调试和热重载 React 代码。所有/api 请求都被转发到在我的本地机器上运行的服务器实例。现在这是不可能的,因为当我执行 api 调用时,后端没有用户经过身份验证,过滤器将调用重定向到 OAuth 服务器。一切都从这里消失了。
我知道这是一个架构的科学怪人,这不是你通常会看到的东西,但我完全不知道如何让我的调试环境再次工作。我不知何故需要在后端对用户进行身份验证,并使用该会话从 Dev Server 发出 api 请求。有人有什么想法吗?
【问题讨论】:
标签: reactjs oauth oauth-2.0 webpack-dev-server servlet-filters