我正在尝试将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/