2016-04-02 6 views
7

Ich habe versucht, herum zu suchen, aber ich kann die Antwort auf meine Frage nicht finden.Wie kann man Benutzer mit Facebook-Authentifizierung mit Swift und iOS abmelden?

Ich spiele um mit dieser Anwendung von Github: https://github.com/Yalantis/Koloda/tree/master/Example

ich bin mit, weil ich ein Projekt mache, die die Ziegel basiert klauen aus dieser Anwendung verwenden.

Ich benutze auch firebase. Bisher kann ich meiner Datenbank Benutzer hinzufügen, sodass die App und Firebase verbunden sind.

Ich möchte auch Benutzer über Facebook anmelden/einloggen.

Ich habe meine App mit Facebook verbunden und ein Benutzer kann sich anmelden und erfolgreich mit Facebook-Authentifizierung anmelden.

Das Problem, das ich habe, ist Abmelden.

Wenn ich auf den Abmelden-Button klicke, möchte ich, dass der Benutzer komplett ausgeloggt wird. Also gibt es eine Abmelde-Methode, die mit dem Facebook-SDK namens Logout kommt. Hier sind die relevanten Teile meines Codes.

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

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

Also, wenn ich beim Abmelden klicken und dann auf Login klicken Sie erneut erhalte ich diese Seite:

http://imgur.com/owi3zZn

I ermächtigt bleiben nicht der Benutzer wünschen, nachdem sie auf der Logout-Button geklickt haben, . Wie mache ich es so, dass wenn ich auf den Abmelden-Button klicke, der Benutzer komplett von Facebook ausgeloggt ist und dann, wenn er auf den Login-Button klickt, seinen Benutzernamen/sein Passwort erneut eingeben muss?

Ich habe versucht, in der Webz suchen, aber kann keine Lösung für mein Problem finden, obwohl ich bin mir sicher, es ist etwas ziemlich einfach, ich hoffe!

Vielen Dank für Ihre Hilfe und Entschuldigung, wenn die Formatierung schlecht ist.

Antwort

4

Wenn Sie den LogOut aufrufen, wird der Benutzer von Ihrer App abgemeldet. Soweit ich sie von Facebook abmelden kann, glaube ich nicht, dass du das tun kannst, noch würde es Facebook erlauben. Wenn ein Nutzer Ihre App zum ersten Mal über Facebook autorisiert, fügt Facebook Ihre App der Liste der Apps hinzu, für die sie autorisiert sind (sie können über Facebook.com auf diese Seite zugreifen). Wenn sie logOut und logIn erneut aufrufen, sehen sie die Seite, auf der Sie ein Bild gepostet haben, weil sie es bereits autorisiert hat. Die einzige Möglichkeit, sich erneut zu autorisieren, besteht darin, die App von ihrer Facebook-App-Seite zu löschen und sich erneut bei Ihrer App anzumelden.

+0

Darn, die ein Mist ist, weil ich mit verschiedenen Facebook-Konten anmelden möchten, um zu sehen, ob meine Datenbank bekommt korrekt aktualisiert Würdest du das sowieso wissen? Danke! – Joe

+1

Oh, ich verstehe was du meinst. Wenn Sie in die Safari-App gehen, können Sie Facebook.com besuchen und sich von Ihrem Konto abmelden, sich bei einem anderen Konto anmelden und in Ihre App zurückkehren. Die Safari-Erweiterung, die beim Aufruf des Facebook-Logins erscheint, sollte den neuen angemeldeten Benutzer anzeigen! –

+0

Genie. Danke, das funktioniert perfekt! Wenn ich genug Rep halten würde, würde ich meine Aufzählung bekommen! – Joe

0

Benutzer Dan L die richtige Antwort hat, in one of my comments schrieb er:

Oh, ich verstehe, was Sie meinen. Wenn Sie in die Safari-App gehen, können Sie Facebook.com besuchen und sich von Ihrem Konto abmelden, sich bei einem anderen Konto anmelden und in Ihre App zurückkehren. Die Safari-Erweiterung, die beim Aufruf des Facebook-Logins erscheint, sollte den neuen angemeldeten Benutzer anzeigen!

Dies ist genau das, was ich brauchte. Danke Dan L.

+0

Wenn der Inhalt nicht dir gehört, ist es üblich, eine Antwort in ein Community-Wiki zu konvertieren. –

12

Wenn Sie Sie Benutzer melden Sie sich von der App selbst programmatisch können, um überprüfen Sie den folgenden Code

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

Dies wird die Facebook-Login Popup in Ihrer Anwendung, in dem Benutzer

anmelden in Ihrer App öffnen

Und für den Abmelde, können Sie

let manager = FBSDKLoginManager() 
manager.logOut() 

Dies wird sich abzumelden Benutzer aus der Facebook in der App, danach anrufen, wenn Sie Login-Methode von SDK rufen Sie die l sehen ogin Popup wieder

Wenn Sie das Profil löschen möchten und Token rufen auch den Code unten mit Abmelde

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

erinnern 'FBSDKLoginBehavior.Web' ist auf bestimmte Art von Anwendung beschränkt. Gemäß der Facebook-Plattformrichtlinie können nicht alle Arten von Apps diese Funktion verwenden. Überprüfen Sie die Richtlinie, wenn Sie ihre Kriterien unterstützen und dann nur dieses Flag verwenden. –

+0

Danke dir wirklich meinen Tag retten :) –

2

aus Ihre Kommentare kann ich sehen, was Sie wollen.

Sie können Ihren Simulator Inhalt und Einstellungen einfach zurücksetzen:

Click-Simulator/Reset Inhalt und Einstellungen

+1

Ich hatte das gleiche Problem wie du, und das reparierte es :) –