我目前有一个Spring Boot网络应用,该应用使用Google的身份验证服务控制访问权限。我使用的配置类型是带有@ EnableOAuth2Sso的WebSecurityConfigurerAdapter。
如果未经身份验证的客户端请求了资源,Spring会将客户端重定向到Google登录名。这一直很好。
问题在于,现在我正在尝试开发React字体结束。在开发过程中,我想利用Node.js / React开发功能。这意味着前端在与我的Spring Boot后端(localhost:80)不同的服务器(localhost:3000)上服务。
由于与Spring Boot应用程序有关的跨域限制,第一个问题被阻止。终于解决了。
下一个问题是身份验证。 我最初以为,如果我首先浏览到Spring Boot应用程序(位于localhost:80)并进行了身份验证,那么从我的React应用程序(在localhost:3000中提供)到我的Spring Boot应用程序的后续调用将已经通过身份验证。在我刚刚通过身份验证的浏览器中。
但是,我从Google收到一个新的CORS错误。我的React客户端调用的Spring Boot REST方法似乎没有将其视为已通过身份验证,并试图重定向到Google身份验证服务。
从原点“ null”到“ https://accounts.google.com/o/oauth2/auth?client_id=xxxx&redirect_uri=http://localhost/login&response_type=code&scope=email%20profile&state=UtOpCH”(从“ http://localhost/initialize”重定向)对XMLHttpRequest的访问已被CORS策略阻止:不存在“ Access-Control-Allow-Origin”标头在请求的资源上。
我不知所措。理想情况下,我将能够绕过Google身份验证并以编程方式为开发期间设置用户。但是我也无法弄清楚。
在生产中并且后端和前端都由同一服务器提供服务时,这都不是问题。这是一个仅限开发人员的问题。
有人可以建议如何处理吗? 我有一段时间想描述这种情况。希望这是有道理的。