2009-09-01 4 views
1

J'applique la prise en charge de OpenID pour un site Web public. L'authentification OpenID Yahoo et Verisign fonctionne correctement. Cependant, je n'arrive pas à me connecter au point de terminaison de Google. est sous le code:Pourquoi Net :: OpenID :: Consumer échoue-t-il lorsque vous tentez de récupérer le point de terminaison de découverte OpenID de Google?

initialisation habituelle et d'autres choses ...

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"; 

... d'autres choses

L'erreur est toujours le même: url _fetch _error: Erreur lors de la URL: Non Trouvé

A. Il y a deux mystères ici. Je peux utiliser directement LWP et récupérer le fichier XRDS de https://www.google.com/accounts/o8/id sans aucun problème. B. L'utilisation du même code, mais le changement de l'URL de découverte de point de terminaison à "https://me.yahoo.com" fonctionne parfaitement bien.

Comment faire fonctionner mon code avec Google? Je ne comprends pas pourquoi je ne travaille pas pour Google quand il fonctionne pour Yahoo et Verisign. Des idées?

Répondre

1

Résolu. Il n'y a rien de mal avec le code. La machine sur laquelle j'ai été déployé était une Debian Lenny. La version installée de Net :: OpenID :: Consumer était vraiment ancienne: version 0.14. Je l'ai mis à jour vers la dernière version (1.03) via CPAN. Le code gère désormais parfaitement les points de terminaison Google, Yahoo et Verisign OpenID et l'authentification. Je vais bientôt ajouter Mail Live (Hotmail). ;-)

Questions connexes