迁移到OAuth 2.0后获取access_token的问题

我尝试将我的应用迁移到OAuth 2.0例程。 我无法从JavaScript API设置的cookie中获取access_token。 我解码了cookie中的信息,但是我获得了代码而不是access_token和用户信息。 这似乎是一个相当奇怪的变化。 是否有任何解决方法,因为当您在获取代码时未指定redirect_uri时,似乎无法将代码交换到access_token。

我已经考虑过从JavaScript API中的响应中获取access_token并将其存储在cookie中,但这有点违背了扩展安全性的全部目的,我想问一下是否有正确的方法来实现它。

可能是我做错了,如果是这样的话请告诉我:)

编辑我知道cookie包含一个签名请求,但根据文档,签名请求应该包含我需要的信息,如access_token和uid,但在我的实例中它只保存代码。 这基本上是我不理解的部分。

不幸的是我没有直接得到答案,但我确实有一个文档错误,我提交对Facebook,以试图获取文档: http : //bugs.developers.facebook.net/show_bug.cgi?id = 20363

我有一个类似的问题,当我尝试从FB.login的authResponse解码signedRequest时,它们的有效负载包含如下内容:

 {"algorithm":"HMAC-SHA256","code":"THE_CODE_HERE","issued_at":1315433244,"user_id":"THE_USER_ID"} 

如您所述,文档确实讨论了如何将该代码转换为access_token。 这似乎出现在“服务器端”文档中: http : //developers.facebook.com/docs/authentication/

如果从FB.login中获取accessToken,你可以从js中获取它并缓存它,但正如你所说的那样,实际上并没有签名,而且可能相对容易被伪造。

你是对的,这似乎没有任何有用的信息在这里描述:developers.facebook.com/docs/authentication/signed_request/(http删除,因为我没有足够的声誉点尚未发布更多超过2个链接 – 抱歉)

也许你可以投票我的错误? 我也会在这个bug上发布这个链接。

fbsr_APP_ID cookie实际上是一个signed_request,查看facebook官方文档如何解码签名请求validation签名并获取用户信息。 您还可以查看官方php SDK源代码,了解它们如何从那里获取访​​问令牌。

您必须使用代码来获取实际的access_token。