【发布时间】:2012-05-14 15:11:39
【问题描述】:
我的应用在客户端使用 Facebook Javascript SDK 授权,授权用户应用从 Facebook API 获取访问令牌,使用带有签名请求并提供 code 的 facebook cookie,并将其存储到数据库中。
一切正常,但我想知道,什么时候应该刷新存储的访问令牌?如果用户更改了密码并再次登录/连接怎么办。
据我了解,现在她有了新的访问令牌,应用程序应该从 Facebook 加载它。但是我怎么能理解什么时候应该检查一个新的令牌呢?使用 facebook cookie 检查每个请求不起作用,因为每个用户每秒的请求很少(如果她没有更改密码,则事件)。还是我做错了什么?
我的意思是:
- 我已在客户端授权用户
- 我有带有签名请求的 cookie
- 签名请求足以在服务器端授权用户(验证用户凭据)
- 我可以通过调用 Facebook API 获得
access token,只要用户向我的应用发出请求(因为我需要来自签名请求的code)。所以,当我没有存储access token或现有的access token已过期时,我会这样做。 -
access token只是存储在数据库中,可以随时在不同的线程中使用,可能几分钟后(意味着我们没有用户请求和带有签名请求的 cookie) - 如果存储的
access token没有过期,但在 facebook 端失效了怎么办?我需要获取新的access token,但此时 cookie 已消失。
目前我只看到一种方法:将签名请求中的code存储到数据库中,当我们发现我们有无效的access token时,尝试加载它。但我注意到这是正确的方法,并且在大多数情况下不太有用
【问题讨论】:
标签: facebook cookies oauth-2.0