从openID获取数据

时间:2012-11-16 21:04:17

标签: php lightopenid

我正在尝试使用LightOpenID获取数据。原样,下面的代码是有效的,但如果我取消注释这些行以获取更多信息,它会超时,并且不会显示任何错误。我做错了什么?

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();
}

1 个答案:

答案 0 :(得分:0)

open id是一个简单的http接口。我建议你为它建立自己的代码。

谷歌的开放ID也略有不同,并且不符合标准。我建议你尝试这个代码对照其他提供者(如OpenID),他们遵循标准。该库可能无法正确处理谷歌。我在查看google对我自己的库的期望时遇到了一些麻烦。

从那里你至少可以确定图书馆是否真的有效;)