2016-01-20 109 views
0

我正在使用ParseSDKFacebook SDK构建应用程序。我使用ParseFacebookUtils登录到用户的帐户与被像这样访问令牌:ParseFacebookUtils登录问题

- (void)viewDidAppear:(BOOL)animated { 
[super viewDidAppear:YES]; 
if (![FBSDKAccessToken currentAccessToken]) 
{ 
    // User is not logged in 
    [self performSegueWithIdentifier:@"LoginSegue" sender:self]; 
} else 
{ 
    // Have token, log in with it 
    [PFFacebookUtils logInInBackgroundWithAccessToken:[FBSDKAccessToken currentAccessToken] block:^(PFUser *user, NSError *error) { 
     if (!user) 
     { 
      // Error logging in 
      NSLog(@"error"); 
     } else 
     { 
      // Logged in 
      NSLog(@"success!"); 
     } 
    }]; 
} 
} 

这工作,并且用户已登录这是自动(第一应用启动时使用logInInBackgroundWithReadPermissions:代替)。

然而,当我注销用户使用

[[FBSDKLoginManager new] logOut]; 

用户将被注销(看起来像),但令牌的下一个应用程序启动时,尽管注销检索 - 因此认证用户再次。

我试图手动设置currentAccessToken这样的 - 调用logOut后,但具有相同的结果:

[FBSDKAccessToken setCurrentAccessToken:nil]; 

这是为什么?

回答

0
[FBSession.activeSession closeAndClearTokenInformation]; 
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 
[login logOut]; 
+0

我使用的SDK版本4所以很遗憾,我没有'FBSession' – Erik

+0

OK,你可以设置令牌零 '[FBSDKAccessToken setCurrentAccessToken:无]。 [FBSDKProfile setCurrentProfile:nil];' – Sandr

+0

我做过了,查看我的帖子底部 - 它设置为零,但在下次应用启动时“恢复” – Erik