我正在玩Facebook Connect,试图在我的网站上使用Facebook作为手段或身份验证。目前我的工作流程看起来是这样的:Facebook访问令牌问题
- 转到URL
- 服务器检查的cookie的accessToken
- 如果的accessToken存在,会自动在评论框的用户名/资料图片填充,并留下的accessToken在隐藏输入
- 发送页面提交,验证访问令牌(这是用表格的其余部分提交)到客户端
- 是一个真实的人有效的访问令牌。如果是这样,添加注释,以数据库
- 刷新页面,以显示新的数据
- 如果没有访问令牌,与
<fb:login-button>
更换用户名/资料图片,与所需的<script>
小号一起。- 页发送到客户端
- 当用户授权页/登录到Facebook上,刷新页面
- (回顶,但这次访问令牌应该存在)
所以我有几个问题:
这种事情安全吗?我正想着如果没有Facebook的双重身份验证(在页面生成时检查一次并再次检查评论提交),我将能够做到这一点,并且我无法用其他任何方式来维护自己的会话状态每个客户。这值得吗?
是否访问令牌到期时,我退出的Facebook?我在想它应该,但我似乎可以继续使用相同的访问令牌来抓取数据(即名称,网址等),手动访问Facebook并注销自己。是因为我只是要求公开信息,只有更多侵入性权限在注销时到期?
鉴于每个想做某事的人都必须从Facebook提供一个独特的令牌,这应该有阻止CSRF的副作用,因为每个动作都可以追踪到一个有效的Facebook帐户。是对的吗?
主要原因是,无论好坏,我希望尽可能多地在服务器端做这些事情。因此,在向Facebook进行调用之后,我并不需要大量的JavaScript在客户端执行DOM操作,我只想将身份验证(在这种情况下是访问令牌)传递给服务器,让服务器执行所有操作思考并让它在第一次尝试中吐出正确的(定制的)页面。我真的不喜欢javascript DOM操作;任何不平凡的事情都会让人感到困惑。 –
一旦Facebook的Javascript SDK设置了cookie,Facebook的PHP SDK就可以获取相同的会话(通过cookie) - 然后您可以从PHP SDK(或者使用Python或您使用的任何服务器端语言)进行所有API调用 - 应该不需要自己手动传递访问令牌 – Igy