2012-06-22 4 views
1

를 사용하여 페이스 북에서 로그 아웃 할 수 없습니다나는 등 사용자의 FB 액세스 토큰을 얻기 위해 FB PHP SDK를 사용하고 FB PHP의 SDK

내 모든 정보를 받고 끝났어요 후, 사용자 로그 아웃을 시도하고있다 ,하지만 작동하지 않습니다. 디버깅을 위해, 나는이 일을 해요 :이 나에게 이런 링크를 제공

$facebook = new Facebook(array(
     'appId' => FB_APP_ID, 
     'secret' => FB_SECRET 
    )); 
$params = array('next' => site_url('welcome/logout')); 
$link = $facebook->getLogoutUrl($params); // $params is optional. 
echo $link; 

: 그 URL로 브라우저를 가리키면

https://www.facebook.com/logout.php?next=http%3A%2F%2Fexample.com%2Fwelcome%2Flogout&access_token=xxxxxxxx 

, 내 콜백 URL로 다시 리디렉션을, 하지만 즉시 Facebook.com에 가면 아직 로그인되어 있습니다.

내가 뭘 잘못하고 있니?

JS SDK를 사용해 보았지만 다른 모든 것이 서버 측 (PHP SDK 사용)에서 수행 중이므로 작동하지 않습니다. 그래서 FB.logout()에 JS SDK를 사용하면 Logout called without access token이라고 표시됩니다. 내가 로그 아웃 URL을 따르 는, 실제로 페이스 북의 나를 로그 않거나, 단지 내 응용 프로그램과 사용자 사이의 세션을 종료 :

편집 내가 더 진행하기 전에 가정

, 누군가가이를 확인 할 수 ?

그렇다면 페이스 북에서 사용자를 완전히 로그 아웃 할 수있는 방법이 있습니까? (나는 추측하고있다 no).

답변

1

RE : JS SDK를 사용하면 JS SDK와 PHP SDK를 동시에 사용할 수 있습니다 (약 1 년 동안). 그래서 JS 방법이 당신에게 더 잘 어울리는다면, 당신이 그것을 시도해 볼 것을 제안합니다.

"편집": 예, 완전히 페이스 북에서 로그 아웃합니다.

이제 시작 기능 질문입니다. 당신이 생각하는 시나리오는 개발 과정에서 발생하지만, 나는 그 이유를 정확히 지적한 적이 없습니다. 쿠키가 잘못된 도메인에 저장되는 것과 관련이 있다고 생각합니다. (페이스 북은 기본 도메인이라고 생각하는 상점을 저장하고 기본 도메인을 사용하거나 동일한 기본 도메인에서 두 개의 응용 프로그램을 사용하는 경우 트위스트).

쿠키를 삭제하면 쿠키가 분류됩니다. 그런 다음 Facebook의 설정에서 도메인을 조작하지 않도록하십시오. 그러면 다시 표시되지 않습니다. (나는 방아쇠를 정확하게 지적한 적이 없기를 희망하지만, 일단 개발이 끝나면 안정적인 응용 프로그램을 만들 수 없었습니다.)

+0

수신 한 액세스 토큰을 전달하는 방법을 파악하지 못했습니다. PHP SDK를 JS SDK에 추가합니다. 그러나 JS SDK로 로그인 한 다음 (확장 토큰을 얻기 위해 토큰을 PHP 스크립트에 전달하는 경우) 로그 아웃 기능을 포함하여 잘 작동합니다. 그래서 JS SDK를 사용하기로 결정했습니다. 어쨌든 도움을 주셔서 감사합니다. (PS - 나는 내 웹 서버에서 직접 개발했기 때문에 dev 환경이 아니 었습니다) – xbonez

관련 문제