SDK v.4에서 작업 중이지만, 클래스 FacebookRedirectLoginHelper 메서드 isValidRedirect에 문제가있는 것 같습니다. $_GET['state']
콜백 URL에 변수이고 $this->state
가 안전한 암호화 pseudrandom 번호를 생성하는 기능 random()
할당되지만Facebook isValidRedirect는 항상 false를 반환합니다.
는 SDK 코드
protected function isValidRedirect()
{
return $this->getCode() && isset($_GET['state'])
&& $_GET['state'] == $this->state;
}
이다.
모두 $ _GET [ 'state'] 및 $ this-> 상태; 결코 사실로 돌아 가지 않을 것입니다! 당신이 코드를 자세히 보면
그것은, 실제로 $ _SESSION하지 $ _GET
예를 들어 답을 설명해 주실 수 있습니까? 어떻게 위의 상태가 발생하지 않도록하려면? 즉 $ _GET [ 'state'] & $ this-> state가 일치하지 않습니다. –
facebook이 내 URL로 돌아 오면, getLoginUrl() 함수를 다시 호출합니다. 내 질문에, if ($ _ SESSION [ 'FBRLH_state'] == '')와 같은 조건을 부여한 다음 getLoginUrl() 함수 만 호출하면됩니까? –
'getLoginUrl()'함수는 API 호출을하지 않으므로 코드에서 다시 호출되는지는 중요하지 않습니다. 더 좋은 방법은'$ _GET [ 'code']'를 찾는 것입니다. 페이스 북이 로그인 할 때 리턴 할 것이기 때문입니다. 내 예제를 여기에서보십시오 : https : //www.webniraj.com/2014/05/01/facebook-api-php-sdk-updated-to-v4-0-0/ –