我正在尝试使用FB SDK登录。但是,偶尔会有用户已经登录。以下是我用于首先注销的代码。
FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
[loginManager logOut];
[loginManager logInWithReadPermissions:permissionsArray fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
}
我想知道两件事:
1)以下是否会遇到竞争状态? 2)如果是这样,我应该如何以及如何使logOut同步以避免这种情况?
答案 0 :(得分:1)
我认为解决此问题的更好方法是检查currentAccessToken
是否为零并进行相应管理。
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) {
}
}