2012-11-19 31 views
6

Resmi ve güncel Facebook iOS SDK kullanıyorum.
Kurum içi dağıtım profili kullanarak bir fiziksel mağazada kullanılan bir iPad üzerinde bir uygulama geliştiriyoruz. Müşterilerin, alışveriş deneyimlerini geliştirmek için halka açık olan bir iPad'deki Facebook hesabına giriş yapabildikleri yerler.Facebook iOS SDK Çıkış

Karşılaştığım sorun, bir kullanıcı Facebook hesabında oturum açtığında, bir sonraki kullanıcı (müşteri), önceki kullanıcı kimlik bilgileriyle (You have already authorized xxx, Press "Okay" to continue) hala oturum açmış olacaktır. Tabii bu iyi değil.

Bir önceki kullanıcının kendi kullanıcı adını ve parolasını doldurabilmesi için önceki (veya geçerli) kullanıcıyı gerçekte oturum açma (imzalama, kimlik bilgilerini silme veya herhangi bir şeyi yapma) için bir yol var mı?

Maalesef [[FBSession activeSession] closeAndClearTokenInformation] hile yapmaz.

// .... 
[[FBSession activeSession] closeAndClearTokenInformation]; 
[FBSession.activeSession openWithCompletionHandler:^(FBSession *session, 
                 FBSessionState state, 
                 NSError *error) { 
     // More code ... 

    }]; 
// ... 

PS:

Bu

bugüne kadar bir kod parçasıdır. The cookie 'workaround' doesn't work for me (tabii ki)

+0

diyoruz? iOS, Facebook uygulaması veya Safari ile mi? – ale0xB

+0

Safari ile. – basvk

cevap

8

Sizin bağlamda, cihazınızın/aygıtlarınızın Facebook uygulamasının yüklü olmadığını varsayıyorum ya da iOS kullanmak için varsayılan oturum açma davranışından ayrılan iOS 6 sistem kimlik doğrulamasını kullanmayı bekliyorum. Safari çerezlerini temizlemeniz gerekiyordu, ancak bu işlem senaryoda daha yumuşak bir deneyim için FBSession openWithBehavior:completionHandler: yöntemini kullanmalı ve FBSessionLoginBehaviorForcingWebview davranışını belirtmeli ve böylece kimlik doğrulaması için satır içi web görüntüleme iletişim kutusunu kullanmalıdır.

Örnek, Facebook iOS SDK'sındaki SwitchUserSample örneğine bakın; çünkü bu örnek, birden fazla hesap arasında geçiş yapabilen bir uygulamayı gösterir.

+0

Örnekleri kontrol etmeyi düşünmedim. 'FBSessionLoginBehaviorForcingWebView' davranışını kullanarak doğru yaklaşım gibi görünüyor. – basvk

0

Bu kod ile deneyin. Bence size yardımcı olacak. Eğer facebook sdk 4.1.0 kullanıyorsanız

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

Bu, gerekli olmayan yeni FBSDKLoginManager örneğini oluşturacaktır –

0

sadece nasıl kullanıcıyı kimliklerini doğrulamaktadır feryat yöntem

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