如何检测Facebook访问令牌是否已刷新?

时间:2014-05-23 20:15:15

标签: ios facebook login facebook-access-token

在我的应用程序中,我需要检测是否已刷新访问令牌,以便我可以使用新令牌更新我的API。

我无法找到解决此问题的最佳方法,因为Facebook SDK会自动缓存访问令牌 - 目前我正在将旧令牌(我保存到NSUserDefaults)与activeSession的accessTokenData的accessToken进行比较。 / p>

如果令牌不同,我会使用较新的令牌发送更新我的api。

这是applicationWillEnterForeground

中的代码
  NSString *newToken = [FBSession activeSession].accessTokenData.accessToken;
  NSString *oldToken = [[NSUserDefaults standardUserDefaults]valueForKey:@"accessToken"];

  if (oldToken) {
        if ([newToken isEqualToString:oldToken]) {
            NSLog(@"token was not refreshed");
        } else {
            NSLog(@"token was refreshed");
            [[NSUserDefaults standardUserDefaults]setValue:newToken forKey:@"accessToken"];
            /* update API with new token*/
        }
    } else+
    {
        //if no token exists, set one with the current token
        [[NSUserDefaults standardUserDefaults]setValue:newToken forKey:@"accessToken"];
    }

我不得不承认这真的很酷,但我似乎无法找到解决办法。有没有更好的方法来接近它?

0 个答案:

没有答案