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=3990f74f25f8d1b9669ba55af15aca41a15bdcf9;hp=fa577d312b735286e8c8daa913e8f9e31a07ddb8;hb=15e1d0b201341bf72fbf027d1450bbddac49e80f;hpb=3533daff0314522f79dff9c618da087568f1378c diff --git a/lib/Catalyst/Manual/Tutorial/Authentication.pod b/lib/Catalyst/Manual/Tutorial/Authentication.pod index fa577d3..3990f74 100644 --- a/lib/Catalyst/Manual/Tutorial/Authentication.pod +++ b/lib/Catalyst/Manual/Tutorial/Authentication.pod @@ -287,55 +287,63 @@ backed session store). Although C<__PACKAGE__-Econfig(name =E 'value');> is still supported, newer Catalyst applications tend to place all configuration -information in C and automatically load this information +information in C and automatically load this information into Cconfig> using the -L plugin. Here, we need -to load several parameters that tell +L plugin. + +First, as noted in Part 3 of the tutorial, Catalyst has recently +switched from a default config file format of YAML to +C (an apache-like format). In case you are using +a version of Catalyst earlier than v5.7014, delete the C +file and simply follow the directions below to create a new +C file. + +Here, we need to load several parameters that tell L where to locate information in your database. To do this, edit the -C YAML and update it to match: - - --- - name: MyApp - authentication: - default_realm: dbic - realms: - dbic: - credential: +C file and update it to match: + + name MyApp + + default_realm dbic + + + # Note this first definition would be the same as setting # __PACKAGE__->config->{authentication}->{realms}->{dbic} # ->{credential} = 'Password' in lib/MyApp.pm - # (IOW, each hash key becomes a "name:" in the YAML file). # # Specify that we are going to do password-based auth - class: Password + class Password # This is the name of the field in the users table with the # password stored in it - password_field: password + password_field password # We are using an unencrypted password now - password_type: clear - store: + password_type clear + + # Use DBIC to retrieve username, password & role information - class: DBIx::Class + 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::Users'). # NOTE: Omit 'MyApp::Model' here just as you would when using # '$c->model("MyAppDB::Users)' - user_class: MyAppDB::Users + user_class MyAppDB::Users # This is the name of the field in your 'users' table that # contains the user's name - id_field: username + id_field username + + + + Inline comments in the code above explain how each field is being used. -B: Although YAML uses a very simple and easy-to-ready format, it -does require the use of a consistent level of indenting. Be sure you -line up everything on a given 'level' with the same number of indents. -Also, be sure B to use C characters (YAML does not support -them because they are handled inconsistently across editors). - +Note that you can use many other config file formats with catalyst. +See L +for details. =head2 Add Login and Logout Controllers @@ -712,40 +720,43 @@ Edit C and update it to match (the C and C are new, everything else is the same): --- - name: MyApp - authentication: - default_realm: dbic - realms: - dbic: - credential: + name MyApp + + default_realm dbic + + + # Note this first definition would be the same as setting # __PACKAGE__->config->{authentication}->{realms}->{dbic} # ->{credential} = 'Password' in lib/MyApp.pm - # (IOW, each hash key becomes a "name:" in the YAML file). # # Specify that we are going to do password-based auth - class: Password + class Password # This is the name of the field in the users table with the # password stored in it - password_field: password + password_field password # Switch to more secure hashed passwords - password_type: hashed + password_type hashed # Use the SHA-1 hashing algorithm - password_hash_type: SHA-1 - store: + password_hash_type SHA-1 + + # Use DBIC to retrieve username, password & role information - class: DBIx::Class + 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::Users'). # NOTE: Omit 'MyApp::Model' here just as you would when using # '$c->model("MyAppDB::Users)' - user_class: MyAppDB::Users + user_class MyAppDB::Users # This is the name of the field in your 'users' table that # contains the user's name - id_field: username - + id_field username + + + + =head2 Try Out the Hashed Passwords