【发布时间】:2011-11-07 08:19:33
【问题描述】:
我正在玩 Facebook Connect,试图在我的网站上使用 Facebook 作为手段或身份验证。目前我的工作流程如下所示:
- 转到网址
- 服务器检查 AccessToken 的 cookie
- 如果AccessToken存在,评论框自动填写用户名/头像,隐藏输入中留下AccessToken
- 向下发送页面给客户端
- 在提交时,验证访问令牌(已与表单的其余部分一起提交)对于真人来说是有效的访问令牌。如果是这样,请在数据库中添加评论
- 刷新页面以显示新数据
- 如果没有访问令牌,请将用户名/头像替换为
<fb:login-button>,以及所需的<script>s。- 向下发送页面给客户端
- 当用户授权页面/登录facebook时,刷新页面
- (返回顶部,但这次访问令牌应该存在)
所以我有几个问题:
这安全吗?我正在考虑在没有 Facebook 双重身份验证的情况下我能够做到的方法(在页面生成时检查一次并在评论提交时再次检查),除了维护我自己的会话状态之外,我想不出任何其他方法每个客户。那值得做吗?
当我退出 Facebook 时,访问令牌是否过期?我认为应该这样做,但在我手动登录 Facebook 并注销自己之后,我似乎可以继续使用相同的访问令牌来获取数据(即姓名、网址等)。是不是因为我只要求公开信息,只有更多侵入性的权限在注销时过期?
鉴于每个想要做某事的人都必须提供来自 Facebook 的唯一令牌,这应该会产生阻止 CSRF 的副作用,因为每个操作都可以追溯到有效的 Facebook 帐户。对吗?
【问题讨论】:
标签: facebook-graph-api facebook