2012-11-19 4 views
6

나는 공식과 업데이트 된 Facebook iOS SDK을 사용하고 있습니다.
우리는 사내 배포 프로파일을 사용하여 실제 저장소에서 사용되는 iPad에서 응용 프로그램을 개발 중입니다. 고객이 공개적으로 쇼핑 경험을 향상시킬 수있는 iPad의 Facebook 계정에 로그인 할 수있는 곳.Facebook iOS SDK 로그 아웃

내가 만난 문제는 사용자가 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 :

이 지금까지 코드의 일부이다. The cookie 'workaround' doesn't work for me

+0

전화? iOS, Facebook 앱 또는 Safari를 통해? – ale0xB

+0

사파리를 통과했습니다. – basvk

답변

8

귀하의 컨텍스트에서 장치에 Facebook 응용 프로그램이 설치되어 있지 않거나 Safari를 사용하기위한 기본 로그인 동작을 남기지 않는 iOS 6 시스템 인증을 사용한다고 가정합니다. Safari 쿠키를 지우려면 작동하지만 시나리오가 더 원활하게 이루어 지려면 FBSession openWithBehavior:completionHandler: 메서드를 사용하고 동작에 대해 FBSessionLoginBehaviorForcingWebview을 지정하여 인증을 위해 인라인 웹보기 대화 상자를 사용하도록해야합니다.

샘플은 여러 계정간에 전환 할 수있는 앱을 보여주는 예제이므로 Facebook iOS SDK의 SwitchUserSample을 참조하십시오.

+0

예제를 확인하는 것에 대해 생각하지 않았습니다. 'FBSessionLoginBehaviorForcingWebView' 동작을 활용하는 것이 올바른 접근 방법 인 것 같습니다. – basvk

0

이 코드를 사용해보십시오. 나는 그것이 당신을 도울 것이라고 생각합니다. 당신은 페이스 북 SDK 4.1.0을 사용하는 경우

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 
[login logOut]; 
+1

이것은 필요하지 않은 FBSDKLoginManager의 새 인스턴스를 만듭니다. –

0

단지 어떻게 사용자를 인증하는 우는 방법

if ([FBSDKAccessToken currentAccessToken]) { 
    [FBSDKAccessToken setCurrentAccessToken:nil]; 
    [FBSDKProfile setCurrentProfile:nil]; 
}