0

我正在尝试使用 FB SDK 登录。但是,偶尔会有一个用户已经登录。下面是我用来先注销的代码。

FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];

[loginManager logOut];
[loginManager logInWithReadPermissions:permissionsArray fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
}

我想知道两件事:

1)以下会达到比赛条件吗?
2)如果是这样,我应该以及如何使 logOut 同步以避免这种情况?

4

1 回答 1

1

我认为这个问题的更好的解决方案是检查是否currentAccessToken为 nil 并进行相应的管理。

FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];

if ([FBSDKAccessToken currentAccessToken]) {
    // It will be synchronous and will present an alert controller which will further confirm you to logout and will set token and profile to nil.
    [loginManager logOut];
    //after logout you can change your LogOut Button to Login Facebook as done in Facebook samples.
} else { 
    // if the token is nil, just make a login call
    [loginManager logInWithReadPermissions:permissionsArray fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
    }
}
于 2016-10-06T18:32:16.853 回答