Facebook의 PHP SDK `getUser()` 메소드가 0을 반환하는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Barbara Streisand
풀어 주다: 2024-11-22 05:33:14
원래의
488명이 탐색했습니다.

Why Does Facebook's PHP SDK `getUser()` Method Return 0, and How Can I Fix It?

Facebook PHP SDK의 getUser() 메서드가 항상 0을 반환하는 이유는 무엇입니까?

getUser()를 사용하여 Facebook 사용자 ID를 검색하려고 할 때 PHP SDK의 메서드를 사용하면 많은 개발자가 지속적으로 값 0을 받는 문제에 직면합니다. 이 문제는 로그인 버튼을 통해 애플리케이션을 적절하게 인증했음에도 불구하고 발생합니다.

이 문제의 가능한 원인 중 하나는 프레임워크가 $_REQUEST 변수에 의존하기 때문입니다. 그러나 환경에서는 $_REQUEST를 $_GET, $_POST 및 $_COOKIE 변수와 자동으로 병합하지 않을 수도 있습니다. 이러한 불일치로 인해 인증 코드를 검색하는 getCode() 함수의 기능이 방해를 받을 수 있습니다.

해결 방법:

이 문제를 해결하려면 base_facebook에서 getCode() 함수를 수정하세요.

protected function getCode() {
    $server_info = array_merge($_GET, $_POST, $_COOKIE);

    if (isset($server_info['code'])) {
        if ($this->state !== null && isset($server_info['state']) && $this->state === $server_info['state']) {
            $this->state = null;
            $this->clearPersistentData('state');
            return $server_info['code'];
        } else {
            self::errorLog('CSRF state token does not match one provided.');
            return false;
        }
    }

    return false;
}
로그인 후 복사

이 수정을 통해 getCode() 함수가 가능한 모든 요청 변수에 인증 코드가 포함되어 있습니다. 이 변경 사항을 구현한 후에는 getUser() 메소드가 로그인한 Facebook 사용자를 올바르게 식별해야 합니다.

위 내용은 Facebook의 PHP SDK `getUser()` 메소드가 0을 반환하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿