Facebook iOS SDK 3.0 Re-Autorisierung

8

Ich habe ein paar Fragen zur neuen FBSession reauthorization (reauthorizeWithPermissions: behavior: completionHandler :) in facebook sdk 3.0:

Wenn sich jemand per Facebook über meine App angemeldet hat, möchte ich den Nutzer auf bestimmten Seiten erneut mit seinen Facebook-Zugangsdaten authentifizieren. Dadurch wird sichergestellt, dass die Person, die die Seite anzeigt, und die Person, die die Anmeldung vorgenommen hat, identisch sind. Die Berechtigungen für die erneute Authentifizierung bleiben dieselben wie für die Anmeldung. Alles, was ich brauche, ist eine erneute Bestätigung des Benutzerpassworts, um diesen Fall zu gewährleisten.

Daher verwende ich die reauthorizationWithPermissions: um dies zu tun. Und ich setze das Verhalten als FBSessionLoginBehaviorForcingWebView, um sicherzustellen, dass der Benutzer seine Anmeldeinformationen eingeben muss. Dies funktioniert jedoch überhaupt nicht. Es öffnet einfach ein leeres Webview für einige Sekunden und verschwindet dann ... An diesem Punkt ruft es den FBSestionStateHandler-Block mit dem Status auf, der auf FBSessionStateOpen festgelegt wird, jedoch kann das FBSessionReauthorizeResultHandler nicht aufrufen, das in dem (completionHandler :) definiert wird.

Wenn ich jedoch einfach das Verhalten auf den Standardwert (FBSessionLoginBehaviorWithFallbackToWebView) einstelle, funktioniert es gut, indem es die Anfrage zwischen facebook app / safari hin und her gibt und den Aufruf durch den Aufruf von completionHandler abschließt. Mit dem Standardverhalten wird der Benutzer jedoch nicht gezwungen, sein Kennwort erneut einzugeben.

Also ich bin wirklich verwirrt, und die SDK-Dokumente im Web sind nicht sehr nützlich für meinen Fall. Könnte mir bitte jemand mitteilen, was ich falsch mache ... oder einen bekannten Bug im SDK verwittern? Wenn ja, wie kann ich meine Anforderungen erfüllen?

%Vor%

Wie kann ich sicherstellen, dass die E-Mail-Adresse des Benutzers automatisch ausgefüllt wird und das Benutzerformular blockiert, wenn die Webansicht reauth korrekt angezeigt wird? Kann ich auf die Webansicht innerhalb der Facebook-Seite zugreifen, um diese Eigenschaften festzulegen?

Was passiert schließlich mit dem Zugriffstoken und dem Ablaufdatum, wenn die erneute Authentifizierung mit denselben Berechtigungen wie der Login erfolgt?

Vielen Dank im Voraus,

    
Anand 06.09.2012, 12:14
quelle

1 Antwort

0

Das ist eine interessante Frage. Ich habe es nicht codiert, also weiß ich nicht, ob das funktionieren wird, aber wenn man bedenkt, wie FB-Sitzungen funktionieren, ist das meine beste Schätzung für einen Ansatz.

Mit einer FB-Sitzung glaube ich nicht, dass du das kannst. Innerhalb einer gegebenen Sitzung ist FB auth binär, entweder der Benutzer ist angemeldet (d. H. Hat eine offene Sitzung) oder nicht. Die verschiedenen reauth-Methoden sollten sich mit zusätzlichen Berechtigungen authentifizieren und werden nun zugunsten von Methoden zum Anfordern zusätzlicher Berechtigungen veraltet.

Sie können möglicherweise etwas erreichen, das Ihren Vorstellungen entspricht, indem Sie mehrere FB-Sitzungen unterstützen. Die sekundäre Authentifizierung wäre im Prinzip die gleiche wie die Freigabe eines zweiten FB-Benutzers, um sich in Ihrer App anzumelden. Sie würden dann die zweite Sitzung zum richtigen Zeitpunkt schließen. Sie können durch Vergleichen der FB-Benutzer-IDs erzwingen, dass beide Sitzungen dieselben FB-Benutzer sind.

Im letzten Abschnitt des Dokuments Grundlagen zu Sitzungen erläutert der FB die Unterstützung mehrerer Sitzungen.

    
XJones 17.04.2013 01:56
quelle