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="openid_url" 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.
By default, authenticate_openid method looks for claimed URI parameter from the form field named "openid_url", "openid_identifier" or "claimed_uri". If you want to use another form field name, call it like:
$c->authenticate_openid( $c->req->param('myopenid_param') );
-
- 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.