---
name: "Catalyst::Plugin::Authentication::Credential::OpenID"
section: "3pm"
platform: "linux"
package: "libcatalyst-plugin-authentication-credential-openid-perl"
version: "0.03+rp-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Catalyst::Plugin::Authentication::Credential::OpenID"
---

# Catalyst::Plugin::Authentication::Credential::OpenID(3pm)

OpenID credential for Catalyst::Auth framework

## 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="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.

## 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
