Ios 像在本机应用程序中一样从facebook注销
我的应用程序支持使用facebook登录,但当我注销并再次登录时,不会要求我提供任何凭据-它会立即使用iOS6中的本机用户名登录。我希望在本机facebook应用程序中使用以下内容: 当点击“不是你”时,facebook会提供新的登录屏幕 我跟着这个 问题似乎就在这里:Ios 像在本机应用程序中一样从facebook注销,ios,facebook,ios6,Ios,Facebook,Ios6,我的应用程序支持使用facebook登录,但当我注销并再次登录时,不会要求我提供任何凭据-它会立即使用iOS6中的本机用户名登录。我希望在本机facebook应用程序中使用以下内容: 当点击“不是你”时,facebook会提供新的登录屏幕 我跟着这个 问题似乎就在这里: - (void)openSession { NSArray *permissions=[NSArray arrayWithObjects: @"publish_stream", @"publish_actions",@
- (void)openSession
{
NSArray *permissions=[NSArray arrayWithObjects: @"publish_stream", @"publish_actions",@"create_event", nil];
// [FBSession open]
[FBSession openActiveSessionWithPublishPermissions:permissions
defaultAudience:FBSessionDefaultAudienceEveryone
allowLoginUI:YES
completionHandler:
^(FBSession *session,
FBSessionState state, NSError *error) {
[self sessionStateChanged:session state:state error:error];
}];
}
- (void)sessionStateChanged:(FBSession *)session
state:(FBSessionState) state
error:(NSError *)error
{
switch (state) {
case FBSessionStateOpen: {
NSLog(@"Sesstion opened");
UIViewController *topViewController =
[self.navController topViewController];
NSLog(@"Class: %@", [[topViewController presentedViewController] class]);
if ([[topViewController presentedViewController]
isKindOfClass:[LoginViewController class]])
{
[topViewController dismissViewControllerAnimated:YES completion:nil];
}
ViewController *basic=(ViewController*)topViewController;
NSLog(@"Populating details");
[basic populateUserDetails];
}
break;
case FBSessionStateClosed:
{
NSLog(@"Session closed");
[FBSession.activeSession closeAndClearTokenInformation];
}
case FBSessionStateClosedLoginFailed:
NSLog(@"Login failed");
[self.navController popToRootViewControllerAnimated:NO];
[FBSession.activeSession closeAndClearTokenInformation];
[self showLoginView];
break;
default:
break;
}
if (error) {
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"Error"
message:error.localizedDescription
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
}
我不确定Facebook SDK是否支持这一点——尽管我可能错了。这个想法(据我所知)是Facebook登录允许当前登录Facebook的用户登录到你的应用程序。如果没有人登录Facebook,将显示凭据页面。提供有效凭据后,用户将登录到Facebook,并向您的应用程序发送一个身份验证令牌 关键是,您不能对当前登录到Facebook的用户进行身份验证。这首先需要注销当前用户,我认为Facebook希望将此“更改用户”功能保留到Facebook应用程序中 另外,请注意,当用户从你的应用程序注销时,他会一直登录到Facebook。这与适用于使用Facebook身份验证的网站的策略不同。在这种情况下,用户应该同时从网站和Facebook注销