在Post请求之后从localhost:8080重定向到localhost:3000

时间:2017-08-01 22:30:01

标签: spring facebook reactjs spring-mvc spring-social

我正在尝试向我的后端提交表单提交请求以进行用户身份验证,我被重定向到Facebook并登录到Facebook。我成功验证并返回了用户对象(在我的后端配置)。我的后端Facebook auth是在spring social tutorial之后完成的,我还关注了Geoffroy的春季社交登录教程:geowarin.GitHub dot io / social-login-with-spring.html。我的前端React.Js代码(在localhost:3000上运行)看起来像:

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

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

{React view components}

我期待看到的内容:

on localhost:3000

{
  user: info
}

我看到的: 在localhost:8080

$query = $db->query("INSERT INTO tested (tester, manufacturer, model, serial, poweradapter)
VALUES ('$tester','$manufacturer','$model','$serial','$poweradapter')";

我的问题是如何在后端重定向完成后返回localhost:3000并且我应该在后端创建另一个方法,这样我就可以让ajax在前端获取请求以获取用户信息而不是发送JSON对象回来了。在spring.social握手完成后,我不确定如何重定向回3000.

1 个答案:

答案 0 :(得分:2)

实际上你可以改变你的控制器

要在客户端重定向的标头

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

或从控制器返回重定向网址

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

或者我建议通过AJAX提交表单并在不离开localhost:3000

的情况下处理onSuccess