春季启动社交媒体 - Facebook登录

时间:2018-02-19 18:14:05

标签: java spring spring-boot facebook-login spring-social

我正在尝试使用spring boot social进行facebook登录。为此,我从facebook属性创建URL。我有网址,当我从调试模式获取并进入浏览器时,它按照我的意愿工作(所以链接没问题),但是当我从spring控制器发送重定向时没有任何反应。在谷歌浏览器中我可以看到请求已发送,我也可以在Chrome控制台中看到这样的错误:

无法加载[url]。预检的响应无效(302状态)。

我的控制器方法:

@RequestMapping(value = "/connect/facebook", method = RequestMethod.POST)
public String send(Model model){
    String url = socialMediaService.createAuthorizationURL();
    return "redirect:" + url;
}

我知道重定向到此链接存在一些问题,但我不知道如何以正确的方式执行此操作。

编辑:

这完全是关于CORS“Access-Control-Allow-Origin”属性。这足以通过javascript与dataType“jsonp”发送此重定向,如下所示:

$.ajax({
     url: data.url,
     type: "get",
     dataType: "jsonp"
});

1 个答案:

答案 0 :(得分:1)

"redirect:" + url方法适用于通常可以返回视图的用例。您可以将该视图的名称设置为"redirect:" + url,然后将其返回以发出重定向,而不是正常呈现视图。由于您的控制器操作始终重定向,请尝试返回RedirectView

@RequestMapping(value = "/connect/facebook", method = RequestMethod.POST)
public RedirectView send(Model model){
    String url = socialMediaService.createAuthorizationURL();
    return new RedirectView(url);
}

Docs for RedirectView

此外,您需要确保使用httpshttp中正确的一个,并且您的网址已正确构建。例如,https://example.url/resource可能与https://example.url/resource/

不同