0

내가 가지고있는 다음 코드 (내 facebook.php 올바르게에 추가 appIdappSecret도 정확) :PHP와 페이스 북 로그 아웃 및 JS SDK

<?php 

define('APP_ID', 'XXX'); 

$facebook = new Facebook(array(
    'appId' => APP_ID, 
    'secret' => 'XXX', 
)); 

$userId = $facebook->getUser(); 

?> 

<html> 
    <body> 
<div id="fb-root"></div> 

<?php if ($userId) { 
    $userInfo = $facebook->api('/' + $userId); ?> 
    Welcome <?= $userInfo['email'] ?> <fb:logout-button></fb:logout-button> 

<?php } else { ?> 
<div id="fb-root"></div> 
<fb:login-button></fb:login-button> 
<?php } ?> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : '<?= APP_ID ?>', 
     status  : true, 
     cookie  : true, 
     xfbml  : true, 
     oauth  : true, 
    }); 

FB.logout(function() 
{ 
    top.location.href = 'http://www.google.com' 
}); 

    }; 

    (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> 

내 코드를 항상 Welcom입니다 [email protected]를 출력합니다. 다시 로그인 할 수 있도록 올바르게 로그 아웃하려면 어떻게합니까?

답변

1

같은 것을 할 그런 다음 페이스 북의 API 등으로 쿠키, 세션을 삭제 :

 $logoutUrl = $facebook->getLogoutUrl(array('next' => $_SERVER['HTTP_REFERER'], 'session_key' => $fb_session['session_key'])); 

     $fb_session = $facebook->setSession(null); 

     header('Location:' . $logoutUrl); 

당신은 사용자가 단지 어떤 페이지에 '다음'값을 변경 한 뒤 특정 페이지로 이동하려면 당신은 그들이 돌아 가기를 바란다.

+0

@chris : 유용한 정보였습니까? 나는 의견이 없기 때문에 물었다. –

0
$fb_session = $facebook->setSession(null); 

@Somnath Muluk는,이 코드가 세션을 취소 한 것 같다, 그래서 그냥 FB 애플 리케이션은 페이스 북의 웹 사이트의 LoginStatus도 분명있을 것입니다 로그 아웃하지 않습니다.

하지만 app-logout-option은 fb의 앱 로그 아웃을 허용한다고 생각합니다. fb 피드를 계속 방문 할 때 로그인 옵션을 다시 사용하지 않고 작동해야합니다.