[Catalyst] OpenID and SREG
Ashley
apv at sedition.com
Sat Jul 4 06:02:22 GMT 2009
On Jul 3, 2009, at 9:13 PM, Trevor Phillips wrote:
> Catalyst::Authentication::Credential::OpenID I've got the basics of
> Authentication working, but I'm having problems with SREG.
>
> The first problem is when using a .conf config, the docs say you
> can use:
> <extension_args>
> http://openid.net/extensions/sreg/1.1
> required email
> optional fullname,nickname,timezone
> </extension_args>
>
> However, this fails, since this doesn't resolve into an Array, which
> is what Net::OpenID::Consumer expects when
> Catalyst::Authentication::Credential::OpenID calls set_extension_args.
>
> Ok, so I can get around that by defining my Auth in my Perl module
> instead...
>
> The next problem is I can't seem to get at the SREG hash. I'm trying
> to get the hash using:
>
> $sreg = $c->user->signed_extension_fields(
> 'http://openid.net/extensions/sreg/1.1'
> );
>
> ...but this just assigns $sreg the string
> 'http://openid.net/extensions/sreg/1.1'.
>
> Dumps of $c->user don't show anything useful either.
>
> Am I missing something, or is OpenID Extensions for Catalyst
> currently broken?
The configuration examples are bad. Menno Blom provided the patch to
support the stuff and I documented it incorrectly. I'm really sorry
about this; it's been this way for a long time. I've been trying just
this week to get a new release but I was also trying to run deeper
tests to make sure I don't make another faux pas and I've been having
problems getting them together and LWPx::ParanoidAgent is still
broken and my excuse machine is on the fritz.
The snippet below (unedited, it's better to not use the config->{} =
assignment idiom) is from a recent report from Orlando Vazquez who
got it running in spite of the bad doc. There was also an issue with
Config::General being a PITA regarding the data structure so you
might want to start with a pure Perl config and if it runs, then put
it into your favored config file format.
-Ashley
> __PACKAGE__->config->{Plugin::Authentication} = {
> use_session => 1,
> default_realm => 'openid',
> realms => {
> openid => {
> credential => {
> class => 'OpenID',
> store => {
> class => 'OpenID'
> }
> },
> ### need this to get registration fields
> extensions => {
> 'http://openid.net/extensions/sreg/1.1' => 1
> },
> extension_args => [
> 'http://openid.net/extensions/sreg/1.1',
> {
> required => 'email,timezone',
> optional => 'fullname,nickname,timezone'
> }
> ]
> }
> }
> };
More information about the Catalyst
mailing list