The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Catalyst::Plugin::Authentication - Infrastructure plugin for the Catalyst authentication framework.

SYNOPSIS

    use Catalyst qw/
        Authentication
        Authentication::Store::Foo
        Authentication::Credential::Password
    /;

    # later on ...
    # ->login is provided by the Credential::Password module
    $c->login('myusername', 'mypassword');
    my $age = $c->user->age;
    $c->logout;

DESCRIPTION

The authentication plugin provides generic user support. It is the basis for both authentication (checking the user is who they claim to be), and authorization (allowing the user to do what the system authorises them to do).

Using authentication is split into two parts. A Store is used to actually store the user information, and can store any amount of data related to the user. Multiple stores can be accessed from within one application. Credentials are used to verify users, using the store, given data from the frontend.

To implement authentication in a catalyst application you need to add this module, plus at least one store and one credential module.

Authentication data can also be stored in a session, if the application is using the Catalyst::Plugin::Session module.

METHODS

user

Returns the currently logged in user or undef if there is none.

user_exists

Whether or not a user is logged in right now.

The reason this method exists is that <$c-user>> may needlessly load the user from the auth store.

If you're just going to say

        if ( $c->user_user ) {
                # foo
        } else {
                $c->forward("login");
        }

it should be more efficient than <$c-user>> when a user is marked in the session but $c->user hasn't been called yet.

logout

Delete the currently logged in user from user and the session.

get_user $uid

Fetch a particular users details, defined by the given ID, via the default store.

CONFIGURATION

use_session

Whether or not to store the user's logged in state in the session, if the application is also using the Catalyst::Plugin::Session plugin. This value is set to true per default.

store

If multiple stores are being used, set the module you want as default here.

stores

If multiple stores are being used, you need to provide a name for each store here, as a hash, the keys are the names you wish to use, and the values are the the names of the plugins.

 # example
 __PACKAGE__->config( authentication => {
                        store => 'Catalyst::Plugin::Authentication::Store::HtPasswd',
                        stores => { 
                           'dbic' => 'Catalyst::Plugin::Authentication::Store::DBIC'
                                  }
                                         });

METHODS FOR STORE MANAGEMENT

default_auth_store

Return the store whose name is 'default'.

This is set to $c->config->{authentication}{store} if that value exists, or by using a Store plugin:

        use Catalyst qw/Authentication Authentication::Store::Minimal/;

Sets the default store to Catalyst::Plugin::Authentication::Store::Minimal::Backend.

get_auth_store $name

Return the store whose name is $name.

get_auth_store_name $store

Return the name of the store $store.

auth_stores

A hash keyed by name, with the stores registered in the app.

auth_store_names

A ref-hash keyed by store, which contains the names of the stores.

register_auth_stores %stores_by_name

Register stores into the application.

INTERNAL METHODS

set_authenticated $user

Marks a user as authenticated. Should be called from a Catalyst::Plugin::Authentication::Credential plugin after successful authentication.

This involves setting user and the internal data in session if Catalyst::Plugin::Session is loaded.

auth_restore_user $user

Used to restore a user from the session, by user only when it's actually needed.

save_user_in_session $user

Used to save the user in a session.

prepare

Revives a user from the session object if there is one.

setup

Sets the default configuration parameters.

SEE ALSO

Catalyst::Plugin::Authentication::Credential::Password, Catalyst::Plugin::Authentication::Store::Minimal, Catalyst::Plugin::Authorization::ACL, Catalyst::Plugin::Authorization::Roles.

AUTHORS

Yuval Kogman, nothingmuch@woobling.org

Jess Robinson

David Kamholz

COPYRIGHT & LICNESE

        Copyright (c) 2005 the aforementioned authors. All rights
        reserved. This program is free software; you can redistribute
        it and/or modify it under the same terms as Perl itself.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 370:

Expected text after =item, not a bullet