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 aufrufengetUser
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/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Unter Ihrem code und ändern nur ein bisschen:
Habe ich nur noch das speichern der Benutzerdaten in der session.
Nun, wenn Sie diese Methode verwenden, wenn der Anwender in Ihre Seite sollten Sie prüfen, ob er bereits eine Sitzung, wenn ja ist alles gut keine Notwendigkeit, sich zu authentifizieren ihm.
Wenn Sie möchten, melden Sie den Benutzer aus der app, aber nicht aus facebook, nur zerstören, die in dieser Sitzung:
Sollte entfernen Sie alle gespeicherten Daten, die Sie für die Benutzer, das nächste mal besucht er Ihre Seite können Sie starten frisch mit ihm.
Ich bin kein php-Programmierer, und alle, die php habe ich hier, ist von meinem (sehr) begrenzten wissen und dem, was ich gefunden habe, um.