我正在尝试使用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();
}
答案 0 :(得分:0)
open id是一个简单的http接口。我建议你为它建立自己的代码。
谷歌的开放ID也略有不同,并且不符合标准。我建议你尝试这个代码对照其他提供者(如OpenID),他们遵循标准。该库可能无法正确处理谷歌。我在查看google对我自己的库的期望时遇到了一些麻烦。
从那里你至少可以确定图书馆是否真的有效;)