我正在为公共网站实施OpenID支持。 Yahoo和Verisign openid身份验证目前工作正常。但是,我似乎无法连接到Google的终端。 以下是代码:
通常的初始化和东西......
my $csr = Net::OpenID::Consumer->new(
ua => LWP::UserAgent->new(),
consumer_secret => time,
args => CGI->new(),
debug => 1,
);
my $claimed_identity =
$csr->claimed_identity('https://www.google.com/accounts/o8/id');
my $check_url = $claimed_identity->check_url(
return_to => "http://bla.com/openid",
trust_root => "http://bla.com",
delayed_return => 1,
);
print $check_url, "\n";
......其他的东西
错误总是一样的:
url _fetch
_ error:获取网址时出错:找不到
一个。这里有两个谜团。我可以直接使用LWP并从https://www.google.com/accounts/o8/id获取XRDS文件,没有任何问题。
B中。使用相同的代码,但将端点发现网址更改为“https://me.yahoo.com”非常合适。
如何让我的代码与Google一起使用?当我为雅虎和威瑞信工作时,为什么我不为谷歌工作,我很尴尬。有什么想法吗?
答案 0 :(得分:1)
解决。代码没有错。我部署的机器是Debian Lenny。 Net :: OpenID :: Consumer的已安装版本非常陈旧:版本0.14。我通过CPAN将其升级到最新版本(1.03)。该代码现在可以完美地处理Google,Yahoo和Verisign OpenID端点以及身份验证。即将添加Live Mail(Hotmail)。 ; - )