2011-11-03 90 views
1

我需要关于Facebook OAuth的帮助。我正在为我的网页制作一个Facebook新闻提要小工具。我所做的是,我创建了一个Facebook登录页面,获取了验证码,然后获得了访问令牌。访问令牌中有一个到期参数。Facebook OAuth AccessToken过期

我的问题是,当令牌过期时会发生什么?它是否成为新的令牌人再次登录?我想将它存储在一个数据库中,所以我可以随时通过网页进行访问。

如果我使用访问令牌,它仍然会过期吗?或者它是否过期,如果它没有被用于给定的到期时间?

+0

谢谢大家的帮助! – Gasim

回答

1

最初问题的答案是访问令牌仅在用户登录时有效。所以是的,每次登录到您的网站时都需要检索一个新的access_token。详情请见authentication flow documentation

为了获得没有失效(或有效期较长)的访问令牌,您需要让用户授权offline_access。这应该在你的范围内设置。

这里的offline_access许可的描述从this documentation

离线访问 - 使您的应用程序在任何时间执行代表用户的授权请求。默认情况下,大多数访问令牌在短时间后过期,以确保应用程序仅在主动使用应用程序时代表用户发出请求。此权限使我们的OAuth端点返回的访问令牌长久存在。

但是,这不会永远让您访问。如果用户更改密码或取消授权应用程序,则需要让用户重新授权才能获得新的access_token。如果您尝试使用过时的访问令牌,则会返回错误消息。这就是为什么有一个流量可以应对这种可能性的原因。

1

根据我的知识,您可以通过在用户执行fconnect时随时访问我的信息权限(offline_access)来实现此目的。