基于Facebook标头的身份验证不起作用

基于Facebook标头的身份验证不起作用,facebook,oauth,spring-social,Facebook,Oauth,Spring Social,我正在使用SpringSocial获取Facebook好友及其位置的列表。据我所见,Spring Social将访问令牌放入HTTP请求头中,如下所示: Authorization: OAuth AAAFDa6Gl4usBAJH4... 而不是将其作为访问令牌参数附加到URL。因此,请求只返回基本信息,其中不包括位置数据。我可以看出头中的访问令牌是有效的,因为如果我手动将其包含在GET请求中,则会返回完整的数据集(包括位置) 有没有人以前看到过这个问题,可以告诉我问题出在哪里?您是对的,Spr

我正在使用SpringSocial获取Facebook好友及其位置的列表。据我所见,Spring Social将访问令牌放入HTTP请求头中,如下所示:

Authorization: OAuth AAAFDa6Gl4usBAJH4...
而不是将其作为访问令牌参数附加到URL。因此,请求只返回基本信息,其中不包括位置数据。我可以看出头中的访问令牌是有效的,因为如果我手动将其包含在GET请求中,则会返回完整的数据集(包括位置)


有没有人以前看到过这个问题,可以告诉我问题出在哪里?

您是对的,Spring Social将访问令牌像这样放在授权头中(根据OAuth 2规范草案10)。现在,这可能应该使用最近草稿中的“承载者”令牌格式,但在过去几天里,我一直在使用Spring Social Facebook,完全按照您尝试的方式来做——获取用户的朋友——它一直工作得很好

Facebook的文档似乎对access_token查询参数的提升比授权头更大,但他们的API支持这两个参数(一直都支持)。因此,假设给定的令牌被授予查看用户朋友的权限,它应该可以工作

事实上,我只是双重证实了这一点:首先,我使用了Spring社交展示(https://github.com/SpringSource/spring-social-samples/tree/master/spring-social-showcase),连接到Facebook,然后单击左侧菜单中的“好友”列表。成功了。我还获得了一个有效的访问令牌,将我的浏览器指向,并使用浏览器的ModifyHeaders插件将授权头设置为“OAuth{my token}”,它也起作用

你有没有在SpringSocialShowcase(在封面下使用SpringSocialFacebook)上尝试过这一点?想知道你是否面临同样的问题


但是谢谢你问我这个问题,因为它提醒我需要继续更新标题,使用“Bearer”而不是“OAuth”(我也确认它有效)。

Craig,你完全正确,Facebook确实接受授权标题。问题的原因似乎在我这边,因为应用程序没有从FB请求权限。