0

我有一个应用程序,其中包括显示用户 Facebook 帐户中的一些照片。我目前正在使用 fb_graph gem 来执行此操作(这是一个 Ruby 项目)。

我可以获取 URL 没有问题,但我不知道的是,如果用户退出他们的 Facebook 帐户,他们是否能够看到这些照片,显示在我的页面上。URL 看起来像:http://sphotos-d.ak.fbcdn.net/hphotos-ak-prn1/<id>.jpg.

不过,有一个明显的解决方法。我可以将我为用户拥有的访问令牌附加到 URL 上,因此他们具有相同的权限来查看我所做的照片:`` http ://sphotos-d.ak.fbcdn.net/hphotos-ak-prn1 / .jpg?access_token=`.

像这样的问题http://developers.facebook.com/docs/authentication/client-side/access_token建议使用客户端应该是最后的手段,但我认为我必须这样做(因为并非所有照片都是上市)。

这个问题Facebook access token: server-side vs client-side flow说因为我在服务器端获取令牌,所以它会持续 60 天。所以我想小心我如何使用它。

那么有两个问题:这对查看照片有用吗,有没有更好的方法不暴露access_token

4

3 回答 3

0

在任何情况下都不要将访问令牌放在页面内容的任何 URL 中,否则您从第三方站点提取的任何资源都会在引荐来源标头中暴露用户的访问令牌

您从 API 中检索到的照片 URL 应该可以直接访问,无需访问令牌

于 2012-12-04T18:15:46.610 回答
0

可以访问https://sphotos-a.xx.fbcdn.net/hphotos-ash3/168119_10150146071831729_5116892_n.jpg吗?我认为你可以那是因为它在 facebook cdn 上。您获得此链接并非偶然。为了进行此步骤,您需要使用访问令牌和“user_photos”权限访问用户的相册和照片(您似乎已经这样做了)。

从技术上讲,您在生产中应该没问题(除非 facebook 更改其 cdn url,这似乎不太可能)。

编辑
忘了提。公开用户的访问令牌不是好的做法(如 Igy 提到的)。黑客仍然需要您的应用程序 ID 和客户端密码才能使用访问令牌进行恶意操作,但您不想承担不必要的风险。阅读这个问题了解更多详情。

于 2012-12-07T00:16:59.660 回答
0

我还没有正确理解这个问题。

对于像这样的资源:http://sphotos-d.ak.fbcdn.net/hphotos-ak-prn1/blah它们是静态 url,不会时不时地更改,并且它们不需要访问令牌供其他人查看。您将需要一个 access_token 来获取 url。

客户端生成的令牌有效期为 60 天,或者称为延长到期访问令牌,您显然must not会通过公开令牌来冒用户安全的风险。

我错过了你问题的任何部分吗?

于 2012-12-11T01:57:43.273 回答