Kohana에서 Facebook 인증을 시도 할 때 문제가 있습니다.Kohana의 Facebook 인증 오류
내가 뭘 할 것은 : kohana에서
내가 가지고 내가이 코드
href="https://www.facebook.com/dialog/oauth?client_id=341106515944015"&redirect_uri=http://verana.ge/fbauth/&scope=user_about_me&state=veranalast">
와 컨트롤러 폴더에
내가이에게 내가 가진 컨트롤러라는 fbauth.php를 내장 한보기 파일이라고 loginview.php 이 코드public function action_index()
{
$app_id = "341106515944015";
$app_secret = "79f547b92f34f886cc8d51ca1a5d33e0";
$my_url = "http://verana.ge/";
// session_start(); <!-- commented because in Kohana the Session is already started -->
$code = $_REQUEST["code"];
if(empty($code)) {
$_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
$dialog_url = "https://www.facebook.com/dialog/oauth?client_id="
. $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
. $_SESSION['state'];
echo("<script> top.location.href='" . $dialog_url . "'</script>");
}
if($_REQUEST["state"] = 'veranalast') {
$token_url = "https://graph.facebook.com/oauth/access_token?"
. "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
. "&client_secret=" . $app_secret . "&code=" . $code;
$response = file_get_contents($token_url);
$params = null;
parse_str($response, $params);
$graph_url = "https://graph.facebook.com/me?access_token="
. $params['access_token'];
$user = json_decode(file_get_contents($graph_url));
echo("Hello " . $user->name);
}
else {
echo("The state does not match. You may be a victim of CSRF.");
}
}
하지만 난 페이스 북의 링크를 명중하고 난 다음
을 말한다 오류가 연결을 시도 할 때ErrorException [ Warning ]: file_get_contents(https://graph.facebook.com/oauth/access_token?client_id=341106515944015&redirect_uri=http%3A%2F%2Fverana.ge%2F&client_secret=79f547b92f34f886cc8d51ca1a5d33e0&code=AQB9jQDcWXNVhPoxhOH-GyJ_0P0UQD9y5wfFy8cfP48TxvlX0VnycEWSpTOC0NWXTyCfssTUHCwFjmZdySy74zor_AQGvtzE5YCkB3asMBhWiiAJhesbFa_GrQIzT7UWiNrbl73CmVz5hell-shwrnavUviuDvpMqg6jCbMBHa6nb39xvidf-P5KOe4wlyR9TG8) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 400 Bad APPPATH/classes/controller/fbauth.php [ 32 ] 27 $token_url = "https://graph.facebook.com/oauth/access_token?" 28 . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url) 29 . "&client_secret=" . $app_secret . "&code=" . $code; 30 31 32 $response = file_get_contents($token_url); 33 34 $params = null; 35 36 parse_str($response, $params); 37
또한 두 번 확인을 위해 Kohana 외부에서이 함수를 만들었고 문제없이 작동했습니다. 내가 무슨 짓을했는지
는 아웃 사이드 Kohana은 내가 HTML을 페이스 북 인증 태그를 퍼트 옆 내가 testauth.php에 의해 지정된 파일이있는 난과 동일 코드를 퍼트 만든 곳의 index.php에 의해 지정된 파일을 생성 fbauth.php에 putted 그리고 내가 문제없이 일했다.
어디서 알아낼 수있는 간단한 방법 일지 모르지만 잘 모릅니다. 문제를 해결하는 방법을 알려주십시오.
Ides?
는
빠른 응답 감사합니다. 동일한 코드를 사용하는 동일한 호스트의 Kohana 외부에서 Facebook 인증을 수행 할 때이 오류가 표시되지 않으며 Kohana에서이 오류가 발생하는 이유를 찾을 수 없습니다. –
나는 가면을'은 https : //graph.facebook.com/oauth/access_token CLIENT_ID = 341106515944015 & redirect_uri로 = HTTP % 3A % 2F % 2Fverana.ge % 2 층 및 client_secret = 79f547b92f34f886cc8d51ca1a5d33e0 및 코드 = AQB9jQDcWXNVhPoxhOH-GyJ_0P0UQD9y5wfFy8cfP48TxvlX0VnycEWSpTOC0NWXTyCfssTUHCwFjmZdySy74zor_AQGvtzE5YCkB3asMBhWiiAJhesbFa_GrQIzT7UWiNrbl73CmVz5hell-shwrnavUviuDvpMqg6jCbMBHa6nb39xvidf-P5KOe4wlyR9TG8' 나 자신은 내가 OAuth를 참조? 예외. PHP OAuth 라이브러리'http : // docs.php.net/manual/en/book.oauth.php'를 사용해야하지만'file_get_contents()'만 사용해야하는 것은 아닐까요? –
나는 fbauth.php의 코드 $ _REQUEST [ 'code']를 if (isset ($ _REQUEST [ 'code'])) $ code = $ _REQUEST [ "code"]; 잘 작동하는지 확인하십시오. –