我正在玩Facebook Connect,试图在我的网站上使用Facebook作为手段或身份验证。目前我的工作流程看起来像这样:
<fb:login-button>
,以及所需的<script>
。
所以我有几个问题:
这样安全吗?我正在考虑如果没有Facebook的双重身份验证(在页面生成时检查一次并再次检查提交评论),我将能够做到这一点,而我无法想象保持我自己的会话状态的任何其他方式每个客户。那值得吗?
当我退出Facebook时,访问令牌是否会过期?我认为它应该,但似乎我可以继续使用相同的访问令牌来获取数据(即名称,网址等)后我手动去Facebook并登出自己。是因为我只是要求公开信息,只有更多侵入性权限才会在注销时失效?
鉴于每个想要做某事的人都必须从Facebook提供一个独特的令牌,这应该具有阻止CSRF的副作用,因为每个动作都可以追溯到有效的Facebook帐户。是吗?
答案 0 :(得分:2)
我无法回答您的所有问题,但我可以告诉您,从政策角度看,在您网页上隐藏字段中设置访问令牌存在风险,尤其是如果您的网页可以被任何第三方代码读取,例如作为Google Analytics或AdSense。由于Facebook正在向第三方泄露用户识别数据,因此Facebook将为您指明这一点。 Facebook用户标识以纯文本形式存在于访问令牌中。 Facebook拥有可自动扫描这些内容的流程,并会在您的应用程序泄露给第三方时自动禁止您的应用。
答案 1 :(得分:2)
为什么不直接使用Facebook Javascript SDK来检测他们目前是否已登录Facebook?这也将使访问令牌在Javascript中可用,因此您可以对API进行客户端调用。 您也可以通过Facebook设置的会话cookie访问相同的访问令牌服务器端。