我正在尝试将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有什么建议吗?谢谢。

最佳答案

您的答案在以下链接中

Does the Facebook iOS SDK require the user to authenticate every time they use the app?

关于iphone - iOS应用程序的Facebook SSO问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5789021/

10-11 22:26
查看更多