So melden Sie sich Benutzer von der facebook-Anwendung, sondern pflegen anmelden, von facebook

Habe ich versucht die PHP-SDK - (v. 3.1.1), und die aktuelle Javascript-SDK
wie hier vorgeschlagen : https://developers.facebook.com/docs/guides/web/

nun, wenn Sie versuchen, sich aus ich habe versucht, sowohl die FB.logout() ( für js )
und $facebook->getLogoutUrl() ;

als in der Dokumentation für beide deutlich, dass diese Methoden
melden Sie den Benutzer aus der Anwendung als auch Ihre facebook-Sitzung.

Aber ich brauche nur zum anmelden der Benutzer von der facebook-Anwendung ( test site ).

Habe ich versucht, die Protokollierung der Benutzer aus meinem test-site, das ignorieren der facebook
Aspekt. Aber in diesem Fall, wenn der Benutzer auf den login-button wieder,
die login-flow ( facebook-Authentifizierung und-Umleitung ) nicht passieren.

Ich auch versucht : ( wie vorgeschlagen durch frühere ungelöste Fragen)

$facebook->destroySession();

unset($_SESSION['fb_' . sfConfig::get('app_fb_config_id') . '_code']);
unset($_SESSION['fb_' . sfConfig::get('app_fb_config_id') . '_access_token']);
unset($_SESSION['fb_' . sfConfig::get('app_fb_config_id') . '_user_id']);    

jedoch beim umleiten auf die login-Seite $facebook->getUser() noch
ruft der Benutzer.

Hinweis :
als pro-Dokumentation Beispiel, ich bin mit php-sdk zum login der Benutzer auf meinem test-site,
und die js-sdk, zu machen und zu erleichtern, die facebook-login-button.

zusätzliche :

die Authentifizierung die ich benutze, ist im Grunde das, was die Dokumentation sagt :

<?php

define('YOUR_APP_ID', 'YOUR APP ID');

//uses the PHP SDK.  Download from https://github.com/facebook/php-sdk
require 'facebook.php';

$facebook = new Facebook(array(
  'appId'  => YOUR_APP_ID,
  'secret' => 'YOUR APP SECRET',
));

$userId = $facebook->getUser();

?>

<html>
  <body>
    <?php if ($userId) { 
      $userInfo = $facebook->api('/' + $userId); ?>
      Welcome <?= $userInfo['name'] ?>
    <?php } else { ?>
    <div id="fb-root"></div>
    <fb:login-button></fb:login-button>
    <?php } ?>
    <script>
      window.fbAsyncInit = function() {
        FB.init({
          appId      : '<?= YOUR_APP_ID ?>',
          status     : true, 
          cookie     : true,
          xfbml      : true,
          oauth      : true,
        });

        FB.Event.subscribe('auth.login', function(response) {
          window.location.reload();
        });
      };

      (function(d){
         var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
         js = d.createElement('script'); js.id = id; js.async = true;
         js.src = "//connect.facebook.net/en_US/all.js";
         d.getElementsByTagName('head')[0].appendChild(js);
       }(document));
    </script>
  </body>
</html>
  • wenn ein Benutzer authentifiziert, um zu Ihrer app UND dem einloggen auf facebook getUser() wird immer wieder die FBID. das löschen der Cookies funktioniert, aber das sdk bekommen einen neuen access_token wenn aufrufen getUser die Frage ist, warum Sie das tun wollen ? weder Sie (die app) noch die facebook-Benutzer erhält etwas von ihm.
  • wie wärs einfach das löschen der session-cookie müssen Sie für diesen Benutzer? Wenn Sie nur löschen Sie Ihren cookie dann kann der Benutzer weiterhin angemeldet bleiben auf facebook, aber nicht auf der app. Das nächste mal der Benutzer auf die login-Schaltfläche erstellen Sie eine neue session für ihn.
  • Ich habe versucht, nur das löschen der test-Seite die session, aber wie ich festgestellt habe, in diesem Fall die js-sdk login-button funktioniert nicht mehr wie erwartet.
  • nicht sicher, was Sie versuchen, hier zu sagen "warum Sie das tun wollen?" . Im Grunde will ich nur die user ausgeloggt werden von der Website und der facebook-Verbandes beseitigt, wenn sich der Benutzer abmeldet. Allerdings, wenn der Benutzer entscheidet, um sich wieder einzuloggen, ich will das gesamte login-Prozess zu Verhalten, als wäre eine Vorherige Anmeldung war nicht aufgetreten.
  • Das ist eine andere Frage, können Sie bitte zeigen Sie Ihren code für die Authentifizierung mit facebook?
  • Ich fügte hinzu, auf die Frage
  • Ich verstehe nicht, ich dachte, dass Sie eine facebook-login-button, der die Authentifizierung Teil sollte dort passieren, nicht in der php-Seite der Dinge. Auch, bitte in Zukunft Bearbeiten Sie Ihre ursprüngliche Frage, und fügen Sie code snippets, es ist nicht sehr gut lesbar in den Kommentaren.
  • Ich habe bearbeitet die Frage, und ja, ich bin mit den login-button, die erleichtert wird durch die js-sdk. So weit, login - /logout-flow-arbeiten wie die Dokumentation sagt. Ich glaube aber nicht, soll zur Anmeldung der Benutzer aus seiner/Ihrer facebook-Sitzung. Aber gerade jetzt, ich weiß, warum Sie sich streng an die Tat nicht unterstützen, so eine fb-Anmeldung nicht übrig, wenn die Website anmelden und die facebook login auftreten, auf den gleichen Ablauf der Handlung.
  • nicht wirklich sehen, wo Sie ein problem haben, auf meiner Website habe ich ein optionales facebook-login, und ich kann login logout alle die Zeit ohne loginout von facebook. auf der anderen Seite, ich dont verwenden Sie das widget für den login/logout. 🙂 siehe vwup.bei
  • es wäre toll, wenn könnten Sie schreiben, eine Antwort mit code
  • zu Komplex, um es auseinander nehmen, sorry. die wichtigsten Teile sind die app verwendet seine eigene Sitzung, der Benutzer authentifiziert sich über Ihre fb id (von getUser) oder per E-Mail/Passwort vom Formular. Ihre Benutzerobjekt (aus meiner DB) wird dann eingetragen in der Sitzung. also selbst wenn es wäre ein gültiges facebook-Sitzung, solange meine Authentifizierungs-Methoden werden nicht aufgerufen, wird der Benutzer nicht logedin.
  • Nicht nicht ausloggen aus facebook wenn Sie angemeldet sind, über Ihre app gegen facebook.com Politik ? developers.facebook.com/docs/facebook-login/login-flow-for-web/...

InformationsquelleAutor Alias | 2012-03-20
Schreibe einen Kommentar