Почему Net :: OpenID :: Consumer терпит неудачу при попытке получить конечную точку обнаружения OpenID от Google? - PullRequest
1 голос
/ 01 сентября 2009

Я реализую поддержку 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: Ошибка при загрузке URL: не найден

а. Здесь есть две загадки. Я могу использовать LWP напрямую и получить файл XRDS с https://www.google.com/accounts/o8/id без проблем.

B. Использование того же кода, но изменение URL-адреса обнаружения конечной точки на "https://me.yahoo.com" работает отлично.

Как мне заставить мой код работать с Google? Я совершенно сбит с толку, почему я не работаю на Google, когда он работает на Yahoo и Verisign. Есть идеи?

1 Ответ

1 голос
/ 01 сентября 2009

решаемая. Там нет ничего плохого с кодом. Машина, на которой я работал, была Debian Lenny. Установленная версия Net :: OpenID :: Consumer была действительно старой: версия 0.14. Я обновил его до последней версии (1.03) через CPAN. Теперь код безупречно обрабатывает конечные точки Google, Yahoo и Verisign OpenID и аутентификацию. Собираюсь добавить Live Mail (Hotmail) в ближайшее время. ; -)

...