【问题标题】:Facebook SSO problems with iOS appiOS 应用程序的 Facebook SSO 问题
【发布时间】:2011-04-26 10:30:57
【问题描述】:

我正在尝试将 Facebook 集成到我的应用程序中,我已经实现了 SSO 功能,但是我遇到了一些障碍,一旦我退出应用程序,我就无法恢复用户的会话。我存储令牌和到期日期,如下所示:

-(void)fbDidLogin {
NSString *tokenString = [[self facebook] accessToken];
NSDate * expirationDate = [[self facebook] expirationDate];

[[NSUserDefaults standardUserDefaults] setValue: tokenString forKey:@"FacebookToken"];
[[NSUserDefaults standardUserDefaults] setObject: expirationDate forKey:@"FacebookExpirationDate"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSLog(@"Login");

}

这是成功登录时调用的委托方法。

并恢复会话:

  NSString *tokenString = [[NSUserDefaults standardUserDefaults] stringForKey:@"FacebookToken"];    
NSDate *expDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"FacebookExpirationDate"];
if (tokenString != nil && expDate != nil)
{
    [[facebookFetcher facebook]setAccessToken:tokenString];
    [[facebookFetcher facebook] setExpirationDate:expDate];
}
if ([[facebookFetcher facebook]  isSessionValid])
{
    NSLog(@"YES");
}
else 
{
    NSLog(@"Bummer");
}

我尝试了多种方法来解决这个问题,但都没有运气。我注意到的一件事是到期日期似乎有点奇怪:4001-01-01 00:00:00 +0000 有什么建议吗?谢谢。

【问题讨论】:

    标签: iphone ios facebook


    【解决方案1】:

    【讨论】:

    • 如果它与另一个问题重复,您应该(也)标记它以引起版主注意,说它是重复的。我对 iOS 的 Facebook API 了解不多,无法判断,但您的回答暗示它是重复的......(重复的问题不受欢迎)
    【解决方案2】:

    使用扩展权限offline_access时看到日期4001-01-01 00:00:00 +0000

    我遇到了麻烦,因为我将日期转换为“自 1970 年以来的秒数”,就像它在 Android Facebook SDK 上所做的那样。如果您使用NSDatetimeIntervalSince1970 将4001-01-01 转换为秒,您将得到一个负数(-2147483648),所以要小心。

    【讨论】:

      猜你喜欢
      • 2012-07-11
      • 2012-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-24
      • 2016-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多