为什么Net :: OpenID :: Consumer在尝试获取Google的OpenID发现端点时失败了?

时间:2009-09-01 09:31:56

标签: perl openid google-openid

我正在为公共网站实施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一起使用?当我为雅虎和威瑞信工作时,为什么我不为谷歌工作,我很尴尬。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

解决。代码没有错。我部署的机器是Debian Lenny。 Net :: OpenID :: Consumer的已安装版本非常陈旧:版本0.14。我通过CPAN将其升级到最新版本(1.03)。该代码现在可以完美地处理Google,Yahoo和Verisign OpenID端点以及身份验证。即将添加Live Mail(Hotmail)。 ; - )