1

我正在为公共网站实施 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: Error fetching URL: Not Found

A. 这里有两个谜团。我可以直接使用 LWP 并从https://www.google.com/accounts/o8/id获取 XRDS 文件,没有任何问题。

B. 使用相同的代码,但将端点发现 url 更改为“ https://me.yahoo.com ”工作得很好。

如何让我的代码与 Google 一起使用?我很困惑为什么我不为谷歌工作而为雅虎和威瑞信工作。有任何想法吗?

4

1 回答 1

1

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

于 2009-09-01T14:17:36.637 回答