2012-11-16 2 views
1

LightOpenID를 사용하여 데이터를 가져 오려고합니다. 있는 그대로, 아래 코드가 작동하지만 더 많은 정보를 얻기 위해 줄의 주석을 제거하면 시간이 초과되어 오류가 표시되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?openID에서 데이터 가져 오기

require_once('inc/func/_functions.php'); 
require ('inc/libs/openid.php'); 
initSession(); 
try { 
$openid = new LightOpenID('tutordelphia.com'); 
if(!$openid->mode) { 
    $openid->identity = 'https://www.google.com/accounts/o8/id'; 
    $openid->required = array (
     'contact/email', 
//  'namePerson/first', 
//  'namePerson/last' 
    ); 
    header('Location: ' . $openid->authUrl()); 
} elseif($openid->mode == 'cancel') { 
echo 'User has canceled authentication!'; 
} else { 
$valid=$openid->validate(); 
if($valid) 
{  
    $data=$openid->getAttributes(); 
    $_SESSION['user']=new userClass(); 
    $_SESSION['user']->userID=$_GET['openid_identity']; 
    $_SESSION['user']->userEmail=$data['contact/email']; 

// $_SESSION['user']->firstName=$data['namePerson/first']; 
// $_SESSION['user']->lastName=$data['namePerson/last']; 
// $_SESSION['user']->userName=$data['namePerson/first'].$data['namePerson/last']; 
    $_SESSION['user']->addUserToDB(); 
    $_SESSION['user']->createUserCookie(); 
    header('Location: index.php'); 
    } 
} 
    } catch(ErrorException $e) { 
    echo $e->getMessage(); 
} 

답변

0

오픈 ID는 간단한 http 인터페이스입니다. 나는 당신이 그것을위한 당신 자신의 코드를 만들 것을 제안한다.

Google은 개방형 ID에서 약간 다른 비틀기가 있으며 표준을 따르지 않습니다. 표준을 따르는 다른 공급자 (예 : OpenID)에 대해이 코드를 사용하는 것이 좋습니다. 그 도서관은 Google을 올바르게 처리하지 못할 수도 있습니다. 나는 내 자신의 도서관에서 구글이 예상했던 것을 알아 내는데 어려움을 겪었다.

+0

내가 내 로컬 서버에 그것을 시도하고 일) 만 배치 할 때 작동하지 않습니다;

거기에서 라이브러리가 실제로 작동하는 경우 적어도 확인할 수 있습니다. 나는 phpInfo를 비교했다. 비뚤어 질 것입니까? – Zev