2012-11-19 15 views
6

Sto utilizzando il numero ufficiale Facebook iOS SDK aggiornato.
Stiamo sviluppando un'applicazione su un iPad che viene utilizzato all'interno di un negozio fisico utilizzando un profilo di distribuzione interno. Dove i clienti possono accedere al loro account Facebook su un iPad che è pubblicamente disponibile per migliorare la loro esperienza di acquisto.Facebook iOS SDK Esci

Il problema che ho riscontrato è che quando un utente accede al proprio account Facebook, il prossimo utente (cliente) sarà ancora connesso con le credenziali degli utenti precedenti (You have already authorized xxx, Press "Okay" to continue). Ovviamente non va bene.

C'è un modo per disconnettere (disconnettere, cancellare credenziali o che mai) l'utente precedente (o corrente) in modo che l'utente successivo possa inserire il proprio nome utente e la propria password.

Sfortunatamente lo [[FBSession activeSession] closeAndClearTokenInformation] non fa proprio il trucco.

Questa è una parte del codice finora:

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

    }]; 
// ... 

PS. The cookie 'workaround' doesn't work for me (ovviamente)

+0

Come stai autenticare l'utente? tramite iOS, Facebook o Safari? – ale0xB

+0

Attraverso il safari. – basvk

risposta

8

Dal tuo contesto, presumo che i tuoi dispositivi non abbiano l'app di Facebook installata né ti aspetti di utilizzare l'autenticazione di sistema iOS 6 che lascerebbe il comportamento di accesso predefinito per utilizzare Safari. Se dovessi cancellare i cookie di Safari, questo dovrebbe funzionare ma, per un'esperienza più fluida nello scenario, dovresti utilizzare il metodo FBSession openWithBehavior:completionHandler: e specificare un comportamento di FBSessionLoginBehaviorForcingWebview in modo che utilizzi la finestra di dialogo webview in linea per l'autenticazione.

Vedere il SwitchUserSample nell'SDK iOS di Facebook per un esempio poiché quell'esempio mostra un'app che può passare da un account all'altro.

+0

Non ho pensato di controllare gli esempi. L'utilizzo del comportamento di 'FBSessionLoginBehaviorForcingWebView' sembra il giusto approccio. – basvk

0

Provare con questo codice. Penso che ti aiuterà.

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

Ciò creerà la nuova istanza di FBSDKLoginManager che non è necessaria –

0

Se si utilizza Facebook SDK 4.1.0 basta chiamare il metodo muggito

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