Net::OpenID::Consumer provides a way to authenticate using the various OpenID servers on the internet. This module is currently the best bet on CPAN if you want to make your own OpenID client.
However, getting started is not painless. The first problem is the documentation. The example uses a broken module called LWPx::ParanoidAgent, and the module's options aren't explained too well. In order to get my test script to work, I replaced the bad dependency with the usual LWP::UserAgent and filled in the other fields by trial and error.
This led me to the next problem: the error messages are meaningless. For example, in creating my test OpenID connector, an error message bubbled up from nowhere only giving the meaningless information "bogus_return_to". Because there is not much documentation, I had to go and look at the source code of the module to work out what to do.
It wasn't too hard to get it to work but it certainly could have been made much clearer.
* Notes for users:
** Crypt::DH dependency
If you are thinking about using this module, the most obvious problem arises from Crypt::DH. First of all, unless you have Math::BigInt::GMP, Crypt::DH takes ages to install (some of its tests take more than a minute each) and once it is installed, it prints a nag message each time it runs. I went to Google in search of a solution and ended up back at CPAN and the Crypt::DH::GMP module, a drop-in replacement for Crypt::DH. It looked pretty easy so I installed this and used its "drop-in" function instead of Crypt::DH. (I also had to install GMP to get it to work). This got rid of the nag messages and it dropped in well as a replacement. if you seriously want to use Net::OpenID::Consumer you need to install GMP and then install the crypt/bigint modules, or do what I did and use Crypt::DH::GMP instead. If you do the obvious thing and just type
you will end up getting nagged to death by Crypt::DH.
** Test failures
If you are wondering why the module has so many failed tests at the CPAN testers, the module fails tests on older versions of Perl. I think this could be fixed in the installation scripts, if the author cares to do so.
The alternatives are one other module called NetOpenID::Consumer::Lite which uses only https connections, and hence doesn't need Crypt::DH, and the JanRain module which is broken - see my review.
Addendum [6 July 2009]: since I wrote the above review, another Moose-based module called OpenID::Lite authored by Lyo Kato has come out. I haven't tested it at all but wanted to mention it here.
Addendum [24 September 2009]: A reader of this review asked me for the example code I referred to above. I have cleaned it up somewhat and put it on the web here:
I welcome feedback (email is at the bottom of the page).
Addendum [2 May 2011] @minimalist & G. Allen Morris III: this module works perfectly well - please try it out on the above web page. The version there is 1.03.
8 out of 8 found this review helpful. Was this review helpful to you? Yes No
It does not work and it doesn't seem like it is being updated.
2 out of 4 found this review helpful. Was this review helpful to you? Yes No