使用Facebook ios SDK在应用程序中注销Facebook
我已经在我的应用程序中集成了Facebooklogin,因此用户可以同时login我的应用程序帐户和Facebook,并做相应的actions.For Facebook集成我已经添加Facebook SDK.Now当在我的应用程序中单击注销button它必须清除所有Facebook帐户的凭据。我去了:
-(IBAction)btnlogOutClicked:(id)sender { [appDelegate fbDidlogout]; } -(void)fbDidlogout { FBSession* session = [FBSession activeSession]; [session closeAndClearTokenInformation]; [session close]; [FBSession setActiveSession:nil]; }
但是,当我再次点击button,我直接redirect到我的帐户,而无需loginFacebooklogin页面。
我怎样才能注销Facebook?
使用新的Facebook SDKlogin工具包只写在下面的线,那就是它..
[[FBSDKLoginManager new] logOut];
如果使用swift,请确保具有必要的导入
import FBSDKLoginKit func logout() { FBSDKLoginManager().logOut() }
注销你应该试试这个
您可以使用viewDidLoad方法在导航控制器 (右上angular) 上添加注销button
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Logout" style:UIBarButtonItemStyleBordered target:self action:@selector(logoutButtonWasPressed:)];
上面添加的button的操作方法是
-(void)logoutButtonWasPressed:(id)sender { [FBSession.activeSession closeAndClearTokenInformation]; }
希望对你有帮助!
参考
编辑:
当你问为什么它不要求用户名和密码,所以原因是:
当我们在应用中整合Facebook SDK并尝试login时,它会自动检查两个地方(以确保我们已经loginFacebook)
-
首先它检查我们是否已经login到在这个设备上安装的Facebook Native应用程序。
-
那么它会检查我们是否在设备设置中保存了我们的FaceBook用户名和密码。
如果两个地方我们都没有login,那么它会在应用程序中询问用户名和密码
您可以在设备设置中查看Facebook帐户设置,如下面的屏幕截图所示,
按主页button – >设置 – > Facebook
FBSDK是这样注销的:
[FBSession.activeSession closeAndClearTokenInformation]; FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; [login logOut];
在你的postButtonClicked
写下面的if else:
-(void)postButtonClicked { _session = [[FBSession sessionForApplication:kApiKey secret:kApiSecret delegate:self] retain]; [_session resume]; posting = YES; showSlideShow = 1; if (_facebookName != nil) { [self logoutButtonClicked]; } if (![_session isConnected]) { self.loginDialog = nil; _loginDialog = [[FBLoginDialog alloc] init]; [_loginDialog show]; } else { self.loginDialog = nil; _loginDialog = [[FBLoginDialog alloc] init]; [_loginDialog show]; } }