重定向从本地:8080到本地主机:3000请求后

问题描述:

我想做一个表单提交到我的后端用户认证Facebook的后端请求,我重定向到Facebook和我登录到Facebook。我已成功验证,并且返回了用户对象(在后端配置)。我的后端Facebook验证是在spring social tutorial之后完成的,我也遵循了Geoffroy的春季社交登录教程:geowarin.GitHub dot io/social-login-with-spring.html。我的前端React.Js代码(运行在localhost:3000)是这样的:重定向从本地:8080到本地主机:3000请求后

const auth_url = "/connect/facebook"; 
<form className="signin__form" action={auth_url} method="post"> 
    <input type="hidden" name="scope" value="user_friends" /> 
    <button type="submit" className="signin__form-btn"> 
    SIGN IN WITH FACEBOOK 
    </button> 
</form> 

我的package.json代理的连接/ Facebook的响应为localhost:8080,看起来像:

{ 
... 
"proxy": { 
    "/connect": { 
     "target": "http://localhost:8080", 
     "secure": false, 
     "changeOrigin": true 
    } 
    }, 
... 
} 

我期望看到:

在localhost:3000

{React view components} 

我看到: 上本地主机:8080

{ 
    user: info 
} 

我的问题是我怎么能回去为localhost:3000后端重定向后的成品,我应该在后端的另一种方法,所以我可以做一个Ajax获得前端的请求获取用户信息而不是发回JSON对象。在spring.social握手完成后,我不确定如何将其重定向回3000。

其实你可以改变你的控制器

头在客户端

@RequestMapping(value = "/auth_url", method = RequestMethod.POST) 
public void login(HttpServletResponse response) { 
    response.setHeader("Location", "http://localhost:3000"); 
} 

重定向或从控制器返回重定向URL

@RequestMapping(value = "/auth_url", method = RequestMethod.POST) 
public ModelAndView login() { 
     return new ModelAndView("redirect:http://localhost:3000"); 
} 

另外我建议你通过AJAX提交表单并在不离开本地主机的情况下处理onSuccess:3000

+0

Hello,th要求答复!我尝试使用fetch和axios库做一个AJAX post请求,但他们都不喜欢我发送到Facebook进行后端auth控制器身份验证时获得的302重定向响应。有没有办法等待重定向完成,然后接收响应? –