Facebook Logout funktioniert nicht im neuen SDK V. 4.1.0 in ios?
Freunde, die ich integrieren will Facebook in meiner App, damit ich download der neuen Facebook SDK v. 4.1.0, für den Facebook-login button wird die Klasse FBSDKLoginButton
wie unten code in Swift.
if (FBSDKAccessToken.currentAccessToken() != nil)
{
//User is already logged in, do work such as go to next view controller.
//Or Show Logout Button
let loginView : FBSDKLoginButton = FBSDKLoginButton()
self.view.addSubview(loginView)
loginView.center = self.view.center
loginView.readPermissions = ["public_profile", "email", "user_friends"]
loginView.delegate = self
self.returnUserData()
}
else
{
let loginView : FBSDKLoginButton = FBSDKLoginButton()
self.loginButtonDidLogOut(loginView)
self.view.addSubview(loginView)
loginView.center = self.view.center
loginView.readPermissions = ["public_profile", "email", "user_friends"]
loginView.delegate = self
}
}
Wie oben-code es wird die Anzeige "Anmelden mit Facebook" - button.
Nach erfolgreichem login enthält, ist die Anzeige logout-button. wenn ich auf logout-button dann der Delegat aufgerufen wird - delegate-Klasse FBSDKLoginButtonDelegate
Delegate-Methode logout :
func loginButtonDidLogOut(loginButton: FBSDKLoginButton!) {
println("User Logged Out")
FBSDKAccessToken.setCurrentAccessToken(nil)
FBSDKProfile.setCurrentProfile(nil)
let manager = FBSDKLoginManager()
manager.logOut()
}
im delegieren bin ich klar für token und auch als Funktion des logout-innen Klasse FBSDKLoginManager
. Aber jedes mal bekommen autorisierten Bildschirm des Benutzers.
Nicht erhalten Login-Bildschirm, so dass ein anderer Benutzer kann nicht anmelden mit facebook. jedes mal, wenn ich auf Browserverlauf löschen.
ohne Browserverlauf löschen, Dort ist keine Anzeige login-Seite, so dass andere Benutzer können sich nicht anmelden.
Qusetion : Facebook BUG
Jedes mal Bildschirm nach Abmelden :
- ich bin vor dem gleichen problem....auch das Alter?
- Ich verpasste den Teil, den Sie möchten in der Lage sein, für einen anderen Benutzer anmelden (möchten Sie vielleicht, um zu betonen, dass). Dies ist nicht mit 4.1, es wurde so zumindest in der 3.x. Man sollte sich auch von der Facebook-app (die app selbst, nicht Ihre app). Check hier.
- yeah thats true..aber was ist, wenn wir wollen, dass der Benutzer gewaltsam login mit den neuen Anmeldeinformationen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin auch stuck an der gleichen Stelle. Aber surfen kam ich zu folgendem Schluss.
Ersten können kennen die Bedeutung von SingleSignOn:
Single sign-on (SSO) ist eine Eigenschaft von access control der mehrere Verwandte, aber unabhängige software-Systeme. Mit dieser Eigenschaft ein Benutzer meldet sich einmal an und erhält Zugriff auf alle Systeme, ohne dass Sie dazu aufgefordert werden, melden Sie sich erneut an jeden von Ihnen.
ich denke, es gibt einige Punkt.Warum sind wir nicht aufgefordert, erneut anmelden, obwohl wir angemeldet haben, aus? Seiner denn am simulator die Anmeldeinformationen gespeichert wurde, auf der safari(auf die erste Zeit mit facebook login, Ihre app öffnet safari oder facebook app, wenn installiert).
Den Informationen, die Sie sehen, die 'haben Sie schon berechtigt...' Nachricht liegt bei Facebook.Um die revoke-Berechtigungen von der app aus, Sie berühren musst, um die Grafik-API. FB-docs, die in der 'Löschen' - Bereich von https://developers.facebook.com/docs/reference/api/user/
Widerruf Login
Sie können auch lassen Sie die Menschen vollständig zu de-autorisieren, eine app oder widerrufen Sie die Anmeldung, indem Sie einen Anruf zu dieser Graph API endpoint:
LÖSCHEN /{Benutzer-id}/Berechtigungen
e.g swift:
Aber um die Abmeldung von der app vollständig, so dass Benutzer aufgefordert werden, Ihre Anmeldeinformationen erneut einzugeben,siehe unten:
Sie haben die Abmeldung von facebook app , nur dann sind Sie wirklich abgemeldet und auch nur dann erneut, die app fragt nach Anmeldeinformationen.Es ist, weil Sie nicht angemeldet sind irgendwo auf dem Telefon.So,SSO Regel doesnot gelten hier. Wenn Sie die Protokollierung nur aus Ihrer app (nicht die fb eine), werden protokolliert, da der angemeldeten aus safari in Ihrem Fall.Das ist, warum, Sie erhalten die gleiche Nachricht angezeigt, die Sie bereits zugelassen sind für diese app.
Testen auf simulator, während Sie legen Sie die Anmeldeinformationen für die erste Zeit, dann öffnet safari und die Anmeldeinformationen, die Sie eingeben, speichert safari. Also,das nächste mal, wenn Sie logout und login app doesnot Anmeldeinformationen anfordern.Denn safari stellt es(oder der facebook app, wenn Sie eingegeben haben Ihre Berechtigung dort)
Jetzt öffnen Sie safari und öffnen Sie facebook. Sie sehen, facebook hat bereits geöffnet und die info-es dauert, von der safari automatisch oder wenn Sie über facebook-app installiert dann von dort aus. Also die Abmeldung von safari und öffnen Sie Ihre app und ausloggen aus der app.Dann die app wieder Fragen Anmeldeinformationen.
Diese Antwort hat mir geholfen, die Ursache ermitteln Problem. Die 2 Tasten sind SSO und Safari. Facebook schlecht dokumentiert die Facebook-Login-Prozess. Ich musste deaktivieren Sie SSO. Dies ist auf der Facebook-Entwickler-Website, wo Sie Ihre app registriert ist, unter Einstellungen. Aber noch wichtiger ist, ich hatte zu ändern, das Verhalten der FBLoginManager zu verwenden UIWebView und nicht Safari. Ich Tat dies mit dem folgenden snippet:
Wenn Sie das default-Verhalten wird es verwalten von Abmeldungen durch die Facebook App oder den browser Safari, und nicht direkt aus der App. Die FBSDKLoginBehaviorWeb ist die Verwendung von iOS UIWebView in einem popup-Fenster. Das funktioniert perfekt, und die Anmeldeinformationen sind erforderlich, jedes mal nach einem logout.