所以我使用NSUserDefaults
来存储我的FBAccessTokenKey
and FBExpirationDateKey
。我正在创建一个单例用户对象:
- (id)init
{
self = [super init];
if (self != nil) {
facebook = [[Facebook alloc] initWithAppId:kAppId andDelegate:self];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"] ) {
NSLog(@"ACCESS KEY IS NOT EMPTY");
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
} else {
NSLog(@"ACCESS KEY IS EMPTY");
}
}
return self;
}
我还实现了一个在我注销时调用的 didLogout 方法:
- (void)fbDidLogout {
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"FBAccessTokenKey"];
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"FBExpirationDateKey"];
}
这基本上清除/刷新了令牌密钥。现在真正的问题是,当我单击注销,退出应用程序,然后再次运行应用程序时,它会检测到密钥FBAccessTokenKey
并且FBExpirationDateKey
仍然存在。为什么是这样?