Gua*_*ard 13 javascript facebook node.js
我的项目使用Node.js和Express,但问题是关于通用方法.
我们的用户都来自FB,我们除了FB之外没有任何身份验证.我们需要将某些操作与特定的FB用户关联起来,并且还需要他们的令牌与FB通信.
目前我们这样做:
什么是好的:我们总是知道用户的状态是有效的(令牌的TTL超过了正常页面的生命周期,所以我们在这里很好).
我们不太喜欢:*客户端令牌是短暂的(是的,我们可以交换它们,但如果我们可以找到任何替代方案,我们不想)*它通常需要多次FB请求(1 - 加载JS SDK,2 - 获取登录状态),直到我们可以展示一些东西.直到我们网站的"登录"区块为空.
问题是什么?
我们正在寻找一种在这里使用某些服务器端代码的最佳方式,并且当我们确定用户已登录时,至少会呈现用户的名称和头像.
我可以想象一些像这样的方案:
关注点:
使用JS SDK是"实时"了解用户状态的唯一可行方法.(引号中的"实时",因为FB.getLoginStatus的结果也会被缓存 - 如果要求它始终准确,则必须使用第二个参数设置为true.)
如果您已经设置了JS SDK以在您的域下设置cookie,那么PHP SDK就能够确定用户的登录状态而无需通过HTTP进行任何API查找 - 它只是从cookie中读取用户ID,因此Facebook :: getUser ()将获取用户ID.这足以显示图片 - 但对于用户名,仍然需要API请求.
在这里,您可以选择一次请求名称- 然后将其保存到会话中.如果在下一个请求中,JS SDK指示用户不再连接,您可以从页面中删除登录信息和/或强制重新加载(并在此上清除会话),返回到不登录状态.
归档时间: |
|
查看次数: |
1398 次 |
最近记录: |