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.