J'ai eu ce même problème sur un site Web récent, et j'ai trouvé un moyen de le surmonter. Ma solution permettait à un utilisateur d'être déjà connecté sur son ordinateur, mais pas de se connecter automatiquement sur mon site, puis de se connecter avec le bouton Facebook et finalement, quand il se déconnecte, il ne se déconnecte pas de Facebook sur son ordinateur , juste sur mon site web (un peu comme Digg le fait avec facebook).
Pour ce faire, j'utilisais https://github.com/facebook/php-sdk/ pour vérifier dans PHP s'il y avait une session facebook active avec l'utilisateur et le site web (ce qui provoquerait la connexion automatique). S'il y avait, je ne l'écho le code de connexion automatique:
FB.init({
appId : '<?php echo $facebook->getAppId(); ?>',
session : <?php echo json_encode($session); ?>, // don't refetch the session when PHP already has it
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
FB.Event.subscribe('auth.login', function() {
window.location = "process-login.php";
});
mais simplement rendre mon propre bouton de connexion facebook qui pointent vers « processus login.php ». Process-login.php définirait la variable $ _SESSION personnalisée qui indiquait que mon site Web était connecté (que ce soit via mon propre système ou via facebook), puis rechargerait la page de référence (en utilisant $ _SERVER ['HTTP_REFERER']) qui afficherait maintenant l'utilisateur comme connecté via Facebook puisque ma propre variable $ _SESSION était maintenant définie. Pour les déconnecter (sans les déconnecter complètement de Facebook, juste mon site web), je voudrais juste charger un script de déconnexion qui a supprimé la variable $ _SESSION. L'exemple.php (dans php-sdk sur github) a été très utile pour trouver ma solution, même si j'ai dû la personnaliser de façon significative pour qu'elle fonctionne avec mon système existant. Cela m'a au moins aidé à voir comment accéder à la variable de session facebook en PHP (stockée dans $ moi dans l'exemple).
Espérons que cela vous aide si c'est toujours un problème, ou que cela aide quelqu'un d'autre dans cette situation.
EDIT: Il s'avère que j'ai toujours eu quelques problèmes avec la connexion automatique à la rare occasion. Pour résoudre ce problème, j'ai supprimé event.subscribe ('auth.login') et créé un bouton facebook qui appelait la fonction suivante pour vérifier l'état de la connexion avant de s'abonner au fichier auth.login. Voici la fonction:
function check_login_session(){
FB.getLoginStatus(function(r){
if(r.session){
window.location = '/process-login.php';
}
else{
FB.Event.subscribe('auth.login', function(response) {
window.location = '/process-login.php';
});
FB.login();
}
});
}`
et désolé si je ne suis pas arrivé à votre problème :-) –
Bonjour, merci beaucoup pour votre réponse. Désolé si ma question est confuse. En fait, je veux désactiver la connexion automatique à la my quand un utilisateur se connecte à son compte facebook. Actuellement, pour ceux qui se connectent à leur facebook, ils vont automatiquement se connecter à mon site :(Je veux que l'utilisateur ait la possibilité de le faire ou pas. :) – Sylph
bien maintenant compris. Eh bien, j'ai également intégré facebook dans un site de musique. J'ai aussi le même problème. Mais je pense que lorsque vous vous connectez avec facebook, le cookie facebook est enregistré dans votre navigateur. Lorsque votre site se charge, il vérifie que le navigateur a le cookie facebook ou la session, il se connecte automatiquement. Je n'ai pas trouvé de solution. –