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.