NAME
Dancer2::Plugin::Auth::Extensible::Provider::DBIC - authenticate via the Dancer2::Plugin::DBIC plugin
DESCRIPTION
This class is an authentication provider designed to authenticate users against a database, using Dancer2::Plugin::DBIC to access a database.
See Dancer2::Plugin::DBIC for how to configure a database connection appropriately; see the "CONFIGURATION" section below for how to configure this authentication provider with database details.
See Dancer2::Plugin::Auth::Extensible for details on how to use the authentication framework.
CONFIGURATION
This provider tries to use sensible defaults, in the same manner as Dancer2::Plugin::Auth::Extensible::Provider::Database, so you may not need to provide much configuration if your database tables look similar to those.
The most basic configuration, assuming defaults for all options, and defining a single authentication realm named 'users':
plugins:
Auth::Extensible:
realms:
users:
provider: 'DBIC'
You would still need to have provided suitable database connection details to Dancer2::Plugin::DBIC, of course; see the docs for that plugin for full details, but it could be as simple as, e.g.:
plugins:
Auth::Extensible:
realms:
users:
provider: 'DBIC'
DBIC:
default:
dsn: dbi:mysql:database=mydb;host=localhost
schema_class: MyApp::Schema
user: user
pass: secret
A full example showing all options:
plugins:
Auth::Extensible:
realms:
users:
provider: 'DBIC'
# optionally specify names of tables if they're not the defaults
# (defaults are 'users', 'roles' and 'user_roles')
users_table: 'users'
roles_table: 'roles'
user_roles_table: 'user_roles'
# optionally set the column names
users_username_column: 'username'
users_password_column: 'password'
roles_role_column: 'role'
See the main Dancer2::Plugin::Auth::Extensible documentation for how to configure multiple authentication realms.
SUGGESTED SCHEMA
See the Dancer2::Plugin::Auth::Extensible::Provider::Database documentation for an example schema.