【发布时间】: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 有什么建议吗?谢谢。
【问题讨论】: