[英]Facebook iOS SDK Logout
我正在使用官方和更新的Facebook iOS SDK 。
我们正在iPad上开发一个应用程序,该应用程序使用内部分发配置文件在实体店中使用。 客户可以在公开的iPad上登录他们的Facebook帐户,以改善他们的购物体验。
我遇到的问题是,当用户登录他们的Facebook帐户时,下一个用户(客户)仍将使用之前用户的凭据登录( You have already authorized xxx, Press "Okay" to continue
)。 当然这不行。
有没有办法实际注销(注销,清除凭据或什么)前一个(或当前)用户,以便下一个用户可以填写自己的用户名和密码。
不幸的是[[FBSession activeSession] closeAndClearTokenInformation]
并不是很有效。
到目前为止,这是代码的一部分:
// ....
[[FBSession activeSession] closeAndClearTokenInformation];
[FBSession.activeSession openWithCompletionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
// More code ...
}];
// ...
PS。 cookie'workaround'对我不起作用 (显然)
从您的上下文来看,我假设您的设备没有安装Facebook应用程序,您也不希望使用iOS 6系统身份验证,这会使默认登录行为使用Safari。 如果您要清除Safari cookie,这应该有效,但为了在您的场景中获得更流畅的体验,您应该使用FBSession openWithBehavior:completionHandler:
方法并指定FBSessionLoginBehaviorForcingWebview
的行为,以便它使用内联webview对话框进行身份验证。
请参阅Facebook iOS SDK中的SwitchUserSample作为示例,因为该示例演示了可以在多个帐户之间切换的应用程序。
尝试使用此代码。 我认为它会对你有所帮助。
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logOut];
如果您使用的是facebook sdk 4.1.0,请调用bellow方法
if ([FBSDKAccessToken currentAccessToken]) {
[FBSDKAccessToken setCurrentAccessToken:nil];
[FBSDKProfile setCurrentProfile:nil];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.