2009-09-01 3 views
1

公開ウェブサイトのOpenIDサポートを実装しています。 YahooとVerisignのopenid認証は現在正常に動作しています。しかし、私はGoogleのエンドポイントに接続することはできません。以下 コードです:GoogleのOpenIDディスカバリエンドポイントを取得しようとするとNet :: OpenID :: Consumerが失敗するのはなぜですか?

通常の初期化とか...

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:エラーフェッチURL:ありませんFound

A.ここに2つの謎があります。私は直接LWPを使用して、https://www.google.com/accounts/o8/idからXRDSファイルを取得することはできません。

B.同じコードを使用していますが、エンドポイント検出URLを「https://me.yahoo.com」に変更すると問題なく動作します。

Googleとコードを連携させるにはどうすればよいですか?私はYahooとVerisignのために働くときに私がGoogleのために働かない理由はかなりうんざりです。何か案は?

答えて

1

解決済み。コードに何も問題はありません。私が配備したマシンはDebian Lennyでした。インストールされているバージョンのNet :: OpenID :: Consumerは本当に古かった:バージョン0.14。 CPAN経由で最新バージョン(1.03)にアップグレードしました。このコードは、Google、Yahoo、VerisignのOpenIDエンドポイントと認証を完璧に処理するようになりました。すぐにLive Mail(Hotmail)を追加しようとしています。 ;-)

関連する問題