Provided by: libjifty-plugin-openid-perl_1.02-1_all bug

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" };
           };

   Attribute Exchange
       You can retrieve information from remote profile on authentication server with
        OpenID Attribute Exchange service extension.

       Set in your config.yml

           - OpenID:
              ax_param: openid.ns.ax=http://openid.net/srv/ax/1.0&openid.ax.mode=fetch_request&openid.ax.type.email=http://axschema.org/contact/email&openid.ax.type.firstname=http://axschema.org/namePerson/first&openid.ax.type.lastname=http://axschema.org/namePerson/last&openid.ax.required=firstname,lastname,email
              ax_values: value.email,value.firstname,value.lastname
              ax_mapping: "{ 'email': 'value.email', 'name': 'value.firstname value.lastname' }"

       this parameters are usuable for all OpenID endpoints supporting Attribute Exchange
       extension. They can be overriden in your application. Watch and/or override "openid/wayf"
       template from Jifty::Plugin::OpenID::View.

       Or you can use in your view "show('openid/wayf','/url_return_to');".

       ax_param

       is the url send to authentication server. It defines namespace, mode, attributes types and
       requested attributes.

       hints : MyOpenID use schema.openid.net schemas instead of axschema.org, Google provides
       lastname and firstname, Yahoo only fullname

       ax_values

       keys of attributes values read from authentication server response.

       ax_mapping

       mapping of receive values with our application fields in json format.

AUTHORS

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

LICENSE

       Copyright 2005-2010 Best Practical Solutions, LLC.

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