X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Manual.git;a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FTutorial%2FAuthentication.pod;h=28e2501ad7fff3a4afa5b37585e228346f338c50;hp=d3c46d655bceed81fedf734bc88127c9ac1fed6a;hb=4f8ea4b998626d5e94d2042783ce8e955e03d2a5;hpb=e74b1cd136cada56a25d50a735b05b0ff152201d diff --git a/lib/Catalyst/Manual/Tutorial/Authentication.pod b/lib/Catalyst/Manual/Tutorial/Authentication.pod index d3c46d6..28e2501 100644 --- a/lib/Catalyst/Manual/Tutorial/Authentication.pod +++ b/lib/Catalyst/Manual/Tutorial/Authentication.pod @@ -339,17 +339,24 @@ Edit C and update it as follows (everything below C is StackTrace Authentication - Authentication::Store::DBIC - Authentication::Credential::Password Session Session::Store::FastMmap Session::State::Cookie /; -The three C plugins work together to support +The C plugin supports Authentication while the C plugins are required to maintain -state across multiple HTTP requests. Note that there are several +state across multiple HTTP requests. + +Note that the only required Authentication class is the main +one. This is a change that occured in version 0.09999_01 +of the C plugin. You B to specify a +particular Authentication::Store or Authentication::Credential plugin. +Instead, indicate the Store and Credential you want to use in your application +configuration (see below). + +Note that there are several options for L (L is generally a good choice if you are on Unix; try @@ -375,21 +382,25 @@ C YAML and update it to match: --- name: MyApp authentication: - dbic: - # Note this first definition would be the same as setting - # __PACKAGE__->config->{authentication}->{dbic}->{user_class} = 'MyAppDB::User' - # in lib/MyApp.pm (IOW, each hash key becomes a "name:" in the YAML file). - # + default_realm: dbic + realms: + dbic: + credential: + class: Password + password_field: password + password_type: self_check + store: + class: DBIx::Class # This is the model object created by Catalyst::Model::DBIC from your # schema (you created 'MyAppDB::User' but as the Catalyst startup # debug messages show, it was loaded as 'MyApp::Model::MyAppDB::User'). # NOTE: Omit 'MyApp::Model' to avoid a component lookup issue in Catalyst 5.66 - user_class: MyAppDB::User + user_class: MyApp::Users # This is the name of the field in your 'users' table that contains the user's name - user_field: username - # This is the name of the field in your 'users' table that contains the password - password_field: password - # Other options can go here for hashed passwords + id_field: username + role_relation: roles + role_field: rolename + ignore_fields_in_find: [ 'remote_name' ] Inline comments in the code above explain how each field is being used. @@ -436,7 +447,7 @@ Then update it to match: # If the username and password values were found in form if ($username && $password) { # Attempt to log the user in - if ($c->login($username, $password)) { + if ($c->authenticate($username, $password)) { # If successful, then let them use the application $c->response->redirect($c->uri_for('/books/list')); return; @@ -636,6 +647,7 @@ lines to the bottom of the file: TT code, it's probably a little too subtle for use in "normal" comments. %] +

Although most of the code is comments, the middle few lines provide a "you are already logged in" reminder if the user returns to the login