我正在使用Facebook SDK对用户进行身份验证,但由于第三方cookie问题我无法通过Facebook使用会话变量,即会话状态在iFrame中不起作用。
为了解决这个问题,我使用POST在页面之间重定向,我在其中创建表单并发布我在服务器上使用的accessToken进行身份验证。
当我重定向时,我在ViewModel中有了accessToken,并将其写入javascript,即执行viewSource将显示accessToken。这是不正确的做法吗?
我希望通过FB.getLoginStatus / FB.Event.subscribe('auth.authResponseChange',函数(响应)[我当前使用两者的组合]来获取新的accessToken并将其发布到视图中(我然后重新验证服务器端)?
答案 0 :(得分:0)
以纯文本格式访问令牌对我来说听起来很危险。特别是如果你使用的是JS SDK,因为有人可以从你的javascript源获取你的APPID,以及他们开始执行图形操作所需的访问令牌。
我非常确定如果您每次使用FB JS SDK(正如您最后建议的那样)重新验证用户,您仍将获得相同的访问令牌,因此无需传递它。自己测试一下,我打赌你会看到相同的访问令牌。
您可能想看看Facebook自己如何处理这个问题。 Facebook PHP SDK on github支持客户端(JS SDK)和服务器之间的身份验证。我相信他们正在使用cookie和PHP安全会话的组合来传递访问令牌,但是您必须亲自查看源代码,以确切了解他们是如何做到的。