我使用Facebook server side login flow获取长期访问令牌,该令牌有效期为60天。由于我需要一直访问用户的帐户(即我总是需要一个有效的访问令牌),当令牌即将到期时,我要求用户重新确认对我的应用程序的访问权限。问题是,当令牌尚未到期时,Facebook将返回相同的令牌,但未延长有效期。
例如,刚发出的令牌有效期为60天。在三天内,用户重新确认对我的应用程序的访问权限,但Facebook返回相同的令牌,该令牌仅在57天内有效。我希望在每次确认后获得一个新的(有效期为60天)。
在Stack Overflow上,有几个关于Facebook令牌有效性的问题,但是,它们都没有讨论这个问题。
提前谢谢你。
答案 0 :(得分:3)
根据Facebook's documentation for extending access tokens,“从......服务器端登录流程创建的应用程序会自动获得长期存在的用户访问令牌。每次用户触发身份验证流程时,这个长期存在的令牌都会刷新并扩展。”
由于没有发生这种情况,您应该file a bug with Facebook。
我还建议不要检查访问令牌是否过期,因为访问令牌可能会在到期日期之前因多种原因而过期:
相反,您应该检查每个FB api调用上的OAuth错误,然后在检测到OAuth错误时将用户重定向到登录流程,如Facebook开发人员博客上的文章{{3 }}