2015-05-13 11 views
8

Ho iniziato a lavorare su un'applicazione iOS su Xcode usando Swift e storyboard. Ho un requisito in cui al clic di un pulsante mostrerò le informazioni del profilo Facebook di un utente sullo schermo (solo se l'utente ha effettuato l'accesso tramite Facebook), ma se non è connesso, passerà automaticamente alla schermata di accesso e all'accesso riuscito ancora una volta verrà mostrata la vista del profilo.iOS: verificare se l'utente ha già effettuato l'accesso utilizzando Facebook?

Come posso fare questo?

risposta

18

Se si sta utilizzando il Facebook Login SDK, chiamare

FBSDKAccessToken.currentAccessToken() 

Non sarà nullo se l'utente è connesso.

https://developers.facebook.com/docs/facebook-login/ios/v2.3#token

+2

Hanno chiesto Swift, che sarebbe 'FBSDKAccessToken.currentAccessToken()'. –

+0

Grazie per questa informazione. Tuttavia, ho un altro dubbio sul fatto che ora quando ho avviato l'app un'altra volta, come posso saltare la pagina di accesso per andare direttamente alla pagina del profilo. Sono sicuro che questo è qualcosa a che fare con la sicurezza ma sono un po 'confuso – hutututu

+0

Dovresti chiamare quella funzione nel tuo AppDelegate e scegliere a quale ViewController basarsi su quello – chedabob

6

Con ultimo SDK di Facebook, è possibile controllare in questo modo.

if(FBSDKAccessToken.current() != nil){ 
    // logged in 
}else{ 
    // not logged in 
} 

Hanno recentemente cambiato FBSDKAccessToken.currentAccessToken()-FBSDKAccessToken.current()

+0

non dovrebbe funzionare. Poiché FBSDKAccessToken.current() restituisce un valore diverso da zero. controllare il tipo di reso. il suo FBSDKAccessToken! che garantisce che questo non potrebbe mai essere nullo. Non so come funziona, ma funziona. –

+0

Penso che segue dovrebbe essere il codice ... se ([FBSDKAccessToken currentAccessToken]! = Nil) {// loggato } else {// non connesso } –

0

Per il codice più conveniente e rapido standard è possibile utilizzare questo frammento di codice seguente. BTW Sto usando Swift 2.2 e Xcode 7.3.1.

if let loggedInUsingFBTokenCheck = FBSDKAccessToken.currentAccessToken(){ 
    //User is already logged-in. Please do your additional code/task. 
}else{ 
    //User is not logged-in. Allow the user for login using FB. 
} 

Se si desidera caricare viewController specifica durante il lancio un'applicazione basata su login controllo è possibile inserire questo codice all'interno AppDelegate del progetto e controllare all'interno -

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
//Check here for login 
} 

grazie.

Problemi correlati