Yves Agostini > Jifty-Plugin-OpenID-1.00 > Jifty::Plugin::OpenID

Download:
Jifty-Plugin-OpenID-1.00.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
Report a bug
Module Version: 1.00   Source  

NAME ^

Jifty::Plugin::OpenID - Provides OpenID authentication for your jifty app

DESCRIPTION ^

Provides OpenID authentication for your app

USAGE ^

Config

please provide OpenIDSecret in your etc/config.yml , the OpenIDUA is optional , OpenID Plugin will use LWPx::ParanoidAgent by default.

    --- 
    application:
        OpenIDSecret: 1234
        OpenIDUA: LWP::UserAgent

or you can set OpenIDUserAgent environment var in command-line:

    OpenIDUserAgent=LWP::UserAgent bin/jifty server

if you are using LWPx::ParanoidAgent as your openid agent. you will need to provide JIFTY_OPENID_WHITELIST_HOST for your own OpenID server.

    export JIFTY_OPENID_WHITELIST_HOST=123.123.123.123

User Model

Create your user model , and let it uses Jifty::Plugin::OpenID::Mixin::Model::User to mixin "openid" column. and a name method.

    use TestApp::Record schema {

        column email =>
            type is 'varchar';

    };
    use Jifty::Plugin::OpenID::Mixin::Model::User;

    sub name {
        my $self = shift;
        return $self->email;
    }

Note: you might need to declare a name method. because the OpenID CreateOpenIDUser action and SkeletonApp needs current_user->username to show welcome message and success message , which calls brief_description method. See Jifty::Record for brief_description method.

View

OpenID plugin provides AuthenticateOpenID Action. so that you can render an AuthenticateOpenID in your template:

    form {
        my $openid = new_action( class   => 'AuthenticateOpenID',
                                moniker => 'authenticateopenid' );
        render_action( $openid );
    };

this action renders a form which provides openid url field. and you will need to provide a submit button in your form.

    form {
        my $openid = new_action( class   => 'AuthenticateOpenID',
                                moniker => 'authenticateopenid' );

        # ....

        render_action( $openid );
        outs_raw(
            Jifty->web->return(
                to     => '/openid_verify_done',
                label  => _("Login with OpenID"),
                submit => $openid
            ));
    };

the to field is for verified user to redirect to. so that you will need to implement a template called /openid_verify_done:

    template '/openid_verify_done' => page {
        h1 { "Done" };
    };

AUTHORS ^

Alex Vandiver, Cornelius <cornelius.howl {at} gmail.com >

LICENSE ^

Copyright 2005-2009 Best Practical Solutions, LLC.

This program is free software and may be modified and distributed under the same terms as Perl itself.