在 Post 请求后从 localhost:8080 重定向到 localhost:3000
Redirect from localhost:8080 to localhost:3000 after Post request
我正在尝试制作一个表单向我的后端提交 post 请求以使用 Facebook 进行用户身份验证,我被重定向到 facebook 并登录到 facebook。我已成功验证并返回了用户对象(在我的后端中配置)。我的后端 Facebook 身份验证是按照 spring social tutorial 完成的,我还遵循了 Geoffroy 的 spring 社交登录教程:geowarin.GitHub 点 io/social-login-with-spring.html。我的前端 React.Js 代码(在 localhost: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 代理 connect/facebook 对 localhost:8080 的响应,看起来像:
{
...
"proxy": {
"/connect": {
"target": "http://localhost:8080",
"secure": false,
"changeOrigin": true
}
},
...
}
我希望看到的:
在 localhost:3000
{React view components}
我看到的:
在 localhost:8080
{
user: info
}
我的问题是如何在后端重定向完成后返回到 localhost:3000,我是否应该在后端创建另一个方法以便在前端创建 ajax 获取请求获取用户信息而不是发送回 JSON 对象。我不确定 spring.social 握手完成后如何重定向回 3000。
实际上你可以改变你的控制器
header 在客户端重定向
@RequestMapping(value = "/auth_url", method = RequestMethod.POST)
public void login(HttpServletResponse response) {
response.setHeader("Location", "http://localhost:3000");
}
或 return 从控制器 URL 重定向
@RequestMapping(value = "/auth_url", method = RequestMethod.POST)
public ModelAndView login() {
return new ModelAndView("redirect:http://localhost:3000");
}
或者我建议通过 AJAX 提交表单并在不离开 localhost:3000
的情况下处理 onSuccess
我正在尝试制作一个表单向我的后端提交 post 请求以使用 Facebook 进行用户身份验证,我被重定向到 facebook 并登录到 facebook。我已成功验证并返回了用户对象(在我的后端中配置)。我的后端 Facebook 身份验证是按照 spring social tutorial 完成的,我还遵循了 Geoffroy 的 spring 社交登录教程:geowarin.GitHub 点 io/social-login-with-spring.html。我的前端 React.Js 代码(在 localhost: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 代理 connect/facebook 对 localhost:8080 的响应,看起来像:
{
...
"proxy": {
"/connect": {
"target": "http://localhost:8080",
"secure": false,
"changeOrigin": true
}
},
...
}
我希望看到的:
在 localhost:3000
{React view components}
我看到的: 在 localhost:8080
{
user: info
}
我的问题是如何在后端重定向完成后返回到 localhost:3000,我是否应该在后端创建另一个方法以便在前端创建 ajax 获取请求获取用户信息而不是发送回 JSON 对象。我不确定 spring.social 握手完成后如何重定向回 3000。
实际上你可以改变你的控制器
header 在客户端重定向
@RequestMapping(value = "/auth_url", method = RequestMethod.POST)
public void login(HttpServletResponse response) {
response.setHeader("Location", "http://localhost:3000");
}
或 return 从控制器 URL 重定向
@RequestMapping(value = "/auth_url", method = RequestMethod.POST)
public ModelAndView login() {
return new ModelAndView("redirect:http://localhost:3000");
}
或者我建议通过 AJAX 提交表单并在不离开 localhost:3000
的情况下处理 onSuccess