Scroll to navigation

Catalyst::Plugin::Authentication::Credential::OpenID(3pm) User Contributed Perl Documentation Catalyst::Plugin::Authentication::Credential::OpenID(3pm)


Catalyst::Plugin::Authentication::Credential::OpenID - OpenID credential for Catalyst::Auth framework


  use Catalyst qw/
  # MyApp.yaml -- optional
      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('/') );
  <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" />


Catalyst::Plugin::Authentication::Credential::OpenID is an OpenID credential for Catalyst::Plugin::Authentication framework.



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') );

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.


Six Apart, Ltd. <>


This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


Catalyst::Plugin::Authentication::OpenID, Catalyst::Plugin::Authentication::Credential::Flickr

2021-01-06 perl v5.32.0