0

我正在使用 Facebook SDK 对用户进行身份验证,但由于 3rd 方 cookie 问题,我无法通过 Facebook 使用会话变量,即会话状态在 iFrame 中不起作用。

为了解决这个问题,我使用 POST 在页面之间重定向,在其中创建表单并发布我在服务器上使用的 accessToken 进行身份验证。

当我重定向时,我在 ViewModel 中有 accessToken 并将其写入 javascript,即执行 viewSource 将显示 accessToken。这是不正确的做法吗?

我是否应该通过 FB.getLoginStatus / FB.Event.subscribe('auth.authResponseChange', function (response) [I currentle use a combination of both] 获取新的 accessToken 并将其发布到视图(然后我重新验证服务器边)?

4

1 回答 1

0

纯文本中的访问令牌对我来说听起来像是一个很大的风险。特别是如果您使用的是 JS SDK,因为有人可以从您的 javascript 源中获取您的 APPID,以及他们开始执行图形操作所需的访问令牌。

我很确定,如果您每次使用 FB JS SDK(如您最后建议的那样)重新验证用户身份,那么无论如何您都会获得相同的访问令牌,因此无需传递它。自己测试一下,我敢打赌你会看到相同的访问令牌。

你可能想看看 Facebook 自己是如何处理这个问题的。github 上的Facebook PHP SDK支持客户端(JS SDK)和服务器之间的身份验证。我相信他们正在使用 cookie 和 PHP 安全会话的组合来传递访问令牌,但是您必须自己仔细查看源代码才能弄清楚他们是如何做到的。

于 2012-10-01T16:03:13.057 回答