NAME
Catalyst::Plugin::Authentication::Credential::OpenID - OpenID credential for Catalyst::Auth framework
SYNOPSIS
use Catalyst qw/
Authentication
Authentication::Credential::OpenID
Session
Session::Store::FastMmap
Session::State::Cookie
/;
# MyApp.yaml -- optional
authentication:
openid:
use_session: 1
user_class: MyApp::M::User::OpenID
# whatever in your Controller pm
sub default : Private {
my($self, $c) = @_;
if ($c->user_exists) { ... }
}
sub signin_openid : Local {
my($self, $c) = @_;
if ($c->authenticate_openid) {
$c->res->redirect( $c->uri_for('/') );
}
}
# foo.tt
<form action="[% c.uri_for('/signin_openid') %]" method="GET">
<input type="text" name="claimed_uri" class="openid" />
<input type="submit" value="Sign in with OpenID" />
</form>
DESCRIPTION
Catalyst::Plugin::Authentication::Credential::OpenID is an OpenID credential for Catalyst::Plugin::Authentication framework.
METHODS
- authenticate_openid
-
$c->authenticate_openid;
Call this method in the action you'd like to authenticate the user via OpenID. Returns 0 if auth is not successful, and 1 if user is authenticated.
User class specified with user_class config, which defaults to Catalyst::Plugin::Authentication::User::Hash, will be instantiated with the following parameters.
- url
- display
- rss
- atom
- foaf
- declared_rss
- declared_atom
- declared_foaf
- foafmaker
See Net::OpenID::VerifiedIdentity for details.
DIFFERENCE WITH Authentication::OpenID
There's already Catalyst::Plugin::Authentication::OpenID (Auth::OpenID) and this plugin tries to deprecate it.
Don't use this plugin with Auth::OpenID since method names will conflict and your app won't work.
Auth::OpenID uses your root path (/) as an authentication callback but this plugin uses the current path, which means you can use this plugin with other Credential plugins, like Flickr or TypeKey.
This plugin is NOT a drop-in replacement for Auth::OpenID, but your app needs only slight modifications to work with this one.
This plugin is based on Catalyst authentication framework, which means you can specify user_class or auth_store in your app config and this modules does the right thing, like other Credential modules. This crates new User object if authentication is successful, and works with Session too.
AUTHOR
Six Apart, Ltd. <cpan@sixapart.com>
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
Catalyst::Plugin::Authentication::OpenID, Catalyst::Plugin::Authentication::Credential::Flickr