存在一个过期后,FB会自动生成新令牌吗?

时间:2018-04-28 04:36:54

标签: facebook facebook-graph-api

我想使用Facebook SDK登录我的应用程序用户,并在FaceBook API页面上显示

  

使用Facebook的iOS和Android SDK的移动应用程序默认使用寿命长的令牌...长寿命令牌的生命周期通常约为60天

假设用户使用Facebook登录我的应用程序,然后我为该用户创建一个唯一的ID并将其存储在Userdefaults中。如果用户单击注销,我将从UserDefaults中删除该唯一ID,并从facebook SDK注销该用户。

我的问题是,如果用户在没有注销的情况下退出我的应用程序,然后在61天后回来。 facebook会自动为该用户生成新令牌吗?当然,用户状态仍然在我的应用程序中登录,因为尚未删除唯一ID。非常感谢你!

1 个答案:

答案 0 :(得分:2)

根据Facebook SDK Documentation

当您使用iOS,Android或我们的JavaScript SDK时,SDK会处理确保令牌在此90天期限到期之前刷新。使用Facebook SDK的原生移动应用程序获得了长期访问令牌,大约可以使用60天。这些令牌每天刷新一次,最多90天,当使用您的应用程序的人向Facebook的服务器发出请求时。如果没有请求,令牌将在大约60天后过期,并且该人必须再次通过登录流程才能获得新令牌。

所以是的,在您的情况下,用户需要再次通过登录流程。

每次用户进入应用时,您都可以使用login status api来验证令牌。

AccessToken accessToken = AccessToken.getCurrentAccessToken();
boolean isLoggedIn = accessToken == null;
boolean isExpired = accessToken.isExpired();