Logout from Facebook programmatically iOS

倖福魔咒の 提交于 2019-11-30 04:20:17

You have two methods to logout. First, as suggested by Inder Kumar Rathore

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

Second is by setting the currentAccessToken to nil

[FBSDKAccessToken setCurrentAccessToken:nil];

@cookiemonsta hope second method works for you.

FBSDKLoginManager is your need, it has logOut method but you might have to use your custom login

e.g.

FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
[loginManager logInWithReadPermissions:@[@"email"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
  if (error) {
    // Process error
  } else if (result.isCancelled) {
    // Handle cancellations
  } else {
    // If you ask for multiple permissions at once, you
    // should check if specific permissions missing
    if ([result.grantedPermissions containsObject:@"email"]) {
      // Do work
    }
  }
}];

//then logout
[loginManager logOut];
Cmar

Swift version:

FBSDKLoginManager().logOut()

You can use FBSDKLoginManager even if you logged in with FBSDKLoginButton.

For Swift 3 and 4

I would like to use the code mentioned over here, How to logout user using Facebook authentication using Swift and iOS?

where HardikDG mentioned a good answer for logout. what you need to do is add below line before the login happen,

fbLoginManager.loginBehavior = FBSDKLoginBehavior.web

and while logout use below code

FBSDKAccessToken.setCurrent(nil)
FBSDKProfile.setCurrent(nil)
FBSDKLoginManager().logOut()

this works perfectly for me.

Swift 3 and Swift 4:

import FacebookLogin
import FacebookCore

let loginManager = LoginManager()
loginManager.logOut()
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!