Java 如何在我的React SpringBoot应用程序中使用Spring安全性
首先,我在springboot的react with backend实现中做了前端 在开发时,我在package.json中设置了Java 如何在我的React SpringBoot应用程序中使用Spring安全性,java,reactjs,spring,spring-boot,spring-security,Java,Reactjs,Spring,Spring Boot,Spring Security,首先,我在springboot的react with backend实现中做了前端 在开发时,我在package.json中设置了“代理”:http://localhost:8080/“,这样它就可以将我的请求代理给localhost:8080,这是spring的tomcat服务器 对于生产,我使用前端maven插件构建react应用程序,使用maven antrun插件将react生产构建复制到后端目录(target/classes/public),最后部署到heroku 在将spring安全
“代理”:http://localhost:8080/“,
这样它就可以将我的请求代理给localhost:8080,这是spring的tomcat服务器
对于生产,我使用前端maven插件构建react应用程序,使用maven antrun插件将react生产构建复制到后端目录(target/classes/public),最后部署到heroku
在将spring安全性添加到我的项目中之后,我意识到它增加了对“/login”上登录页面的支持,我通过更改http.loginPage()
,将其更改为“/mylogin”
@Override
protected void configure(HttpSecurity http) throws Exception{
http.authorizeRequests()
.anyRequest()
.authenticated()
.and()
.formLogin()
.loginPage("/my-login")
.permitAll(true)
.and()
.logout()
.logoutSuccessUrl("/my-login?logout")
.permitAll();
http.cors();
现在的问题是我的登录页面在react应用程序目录中,我不能在spring boot目录中有另一个登录页面。
我尝试使用一个.jsp登录页面作为中间层,它将与Spring安全性进行对话,并从react方面对其发出post请求,但实际上无法使用这种方法
那么,有没有其他方法可以让react提供登录页面,而react仍然可以与SpringSecurity交互
谢谢
第我刚刚开始使用spring…但通常对于React应用程序,身份验证是无状态的…我们设置了包含令牌的授权头(例如:jwt),并且有一个注销端点使令牌无效。因此,在注销请求中使用200=“/my login?logout”。“客户端”路由器将任何路由中的403重定向到“/我的登录” 您所采取的方法要求视图是“服务器端”渲染的。据我所知,React SSR(服务器端渲染)是NodeJS服务器独有的
Reactjs做客户端渲染,因为它是一个Javascript库,而如果您使用springboot作为后端,您将不得不制作jsp页面来做服务器端渲染。它们一般都不是互补的。对于react应用程序,您通常应该使用RESTAPI作为后端,并根据响应在网页中呈现更改 现在,如果您确定您只想要一个springboot应用程序作为后端,那么您必须在springboot的react to jsp页面中转换登录html页面,并在那里呈现您的组件。登录成功后,您将把用户重定向到另一个jsp页面,该页面将呈现整个react应用程序 所以基本上,您的react和spring引导应用程序不会在不同的端口上运行,而是组合成单个spring引导应用程序