2016-04-02 20 views
7

Ho provato a cercare in giro ma non riesco a trovare la risposta alla mia domanda.Come disconnettere l'utente usando l'autenticazione di Facebook usando Swift e iOS?

Sto giocando intorno con questa applicazione da github: https://github.com/Yalantis/Koloda/tree/master/Example

sto usando perché sto facendo un progetto che utilizzerà lo strisciata basato tegola da questa applicazione.

Sto anche utilizzando Firebase. Finora, posso aggiungere utenti al mio database, quindi l'app e Firebase sono connessi.

Desidero anche che gli utenti effettuino la registrazione/login tramite Facebook.

Ho collegato la mia app a Facebook e un utente può entrare e accedere con successo utilizzando l'autenticazione di Facebook.

Il problema che sto avendo è il logout.

Quando faccio clic sul pulsante di disconnessione, voglio che l'utente sia completamente disconnesso. Quindi c'è un metodo di logout che viene fornito con l'SDK di Facebook chiamato logout. Ecco le parti rilevanti del mio codice.

import FBSDKLoginKit 
@IBAction func handleLogout(sender: AnyObject) { 

    facebookLogin.logOut() 
    print("loggedout") 
    } 

Così, quando clicco su Esci e quindi fare clic su login di nuovo ottengo questa pagina:

http://imgur.com/owi3zZn

Non voglio all'utente di rimanere autorizzato dopo che hanno cliccato sul pulsante di logout . Come faccio a fare in modo che quando faccio clic sul pulsante di disconnessione, l'utente sia completamente disconnesso da Facebook e poi quando fa clic sul pulsante di accesso devono reinserire il proprio nome utente/password?

Ho provato a cercare in tutto il webz ma non riesco a trovare una soluzione al mio problema, anche se sono sicuro che è qualcosa di piuttosto semplice, spero!

Grazie per il vostro aiuto e mi dispiace se la formattazione è scadente.

risposta

4

Quando si chiama logOut, l'utente viene disconnesso dall'app. Per quanto riguarda la disconnessione da Facebook, non penso che tu possa farlo, né Facebook lo permetterebbe. La prima volta che un utente autorizza la tua app tramite Facebook, Facebook aggiunge la tua app all'elenco delle app con cui sono autorizzati (possono accedere a quella pagina tramite Facebook.com). Quando eseguono nuovamente logOut e logIn, visualizzeranno la pagina di cui hai pubblicato un'immagine perché l'hanno già autorizzata. L'unico modo per autorizzare nuovamente l'autorizzazione è eliminare l'app dalla propria pagina dell'app Facebook e accedere nuovamente alla tua app.

+0

Darn che è una rottura perché voglio login con diversi account di Facebook per vedere se il mio database ottiene aggiornato correttamente. Lo sapresti comunque intorno a questo? Grazie! – Joe

+1

Oh, capisco cosa intendi. Se vai nell'app safari, puoi andare su Facebook.com e uscire dal tuo account, accedere a un altro account e tornare alla tua app. L'estensione safari che appare quando chiami l'accesso di Facebook dovrebbe mostrare il nuovo utente che ha effettuato l'accesso! –

+0

Genio. Grazie, funziona perfettamente! Se avessi abbastanza rep, avresti ottenuto il mio upvote! – Joe

0

utente Dan L ha la risposta corretta, in one of my comments scrisse:

Oh, capisco cosa vuoi dire. Se vai nell'app safari, puoi andare su Facebook.com e uscire dal tuo account, accedere a un altro account e tornare alla tua app. L'estensione safari che appare quando chiami l'accesso di Facebook dovrebbe mostrare il nuovo utente che ha effettuato l'accesso!

Questo è esattamente ciò di cui avevo bisogno. Grazie Dan L.

+0

Se il contenuto non è tuo, è consuetudine convertire una risposta in una wiki della comunità. –

12

Se voi per rendere utente si disconnette dal applicazione stessa a livello di codice è possibile controllare il seguente codice

let loginView : FBSDKLoginManager = FBSDKLoginManager() 
loginView.loginBehavior = FBSDKLoginBehavior.Web 

Si aprirà il facebook login pop-up nella vostra applicazione in cui l'utente può effettuare il login nel vostro app

E per il logout, è possibile chiamare

let manager = FBSDKLoginManager() 
manager.logOut() 

questo sarà il logout dell'utente dalla facebook in app, dopo questo se si chiama il metodo di login del SDK si vedrà il l popup ogin nuovo

Se si desidera cancellare il profilo e il token anche chiamare il codice qui sotto con il logout

FBSDKAccessToken.setCurrentAccessToken(nil) 
FBSDKProfile.setCurrentProfile(nil) 
+0

ricorda che 'FBSDKLoginBehavior.Web' è limitato a determinati tipi di applicazioni. Come da politica della piattaforma Facebook, non tutti i tipi di app possono utilizzare questa funzione. Controlla la politica se supporta i loro criteri e quindi usa solo questo flag. –

+0

Grazie per aver salvato davvero il mio giorno :) –

2

dai vostri commenti posso vedere ciò che si vuole.

si può semplicemente ripristinare il contenuto e le impostazioni del simulatore:

Clicca simulatore/Reset contenuto e impostazioni

+1

ho avuto lo stesso problema di te e l'ho risolto :) –