Facebook OAuth AccessToken Expiration


Facebook OAuth AccessToken Expiration

我需要Facebook OAuth的帮助。我正试图为我的网页做一个facebook新闻小工具。我所做的是,创建一个facebook登录页面,获得验证码,然后获得访问令牌。访问令牌中有一个过期参数。

我的问题是,当令牌过期时会发生什么?是否成为一个新的令牌人再次登录。我想把它存储在数据库中,这样我就可以在任何时候浏览网页。

如果我使用访问令牌,它仍然会过期吗?或者如果在给定的过期时间内没有使用,它会过期吗?

您最初的问题的答案是,访问令牌仅在用户登录时有效。所以,是的,每次他们登录到您的站点时,都需要检索一个新的access_token。这在身份验证流文档中有详细说明。

为了获得一个没有过期(或有很长的有效期)的访问令牌,您需要让用户授权offline_access

以下是本文档中对offline_access权限的描述:

离线访问-使您的应用程序能够在任何时候代表用户执行授权请求。默认情况下,大多数访问令牌会在短时间内过期,以确保应用程序仅在用户积极使用应用程序时代表用户发出请求。此权限使OAuth端点返回的访问令牌长期有效。

然而,

这不会给你永久的访问权限。如果用户更改了密码,或者对应用程序进行了反授权,则需要让用户重新授权,以获得新的access_token。如果您尝试使用过期的访问令牌,将返回一条错误消息。这就是为什么有一个允许这种可能性的流程是很重要的。

据我所知,当用户不连接时,您可以通过请求随时访问我的信息权限(offline_access)来实现这一点。

详细信息请参考

For Permissions: http://developers.facebook.com/docs/reference/api/permissions/

过期Token: http://developers.facebook.com/blog/post/500/