The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Authen::Simple::DBI - Simple DBI authentication

SYNOPSIS

use Authen::Simple::DBI;

my $dbi = Authen::Simple::DBI->new(
    dsn       => 'dbi:SQLite:dbname=database.db',
    statement => 'SELECT password FROM users WHERE username = ?'
);

if ( $dbi->authenticate( $username, $password ) ) {
    # successfull authentication
}

# or as a mod_perl Authen handler

PerlModule Apache::DBI
PerlModule Authen::Simple::Apache
PerlModule Authen::Simple::DBI

PerlSetVar AuthenSimpleDBI_dsn       "dbi:SQLite:dbname=database.db"
PerlSetVar AuthenSimpleDBI_statement "SELECT password FROM users WHERE username = ?"

<Location /protected>
  PerlAuthenHandler Authen::Simple::DBI
  AuthType          Basic
  AuthName          "Protected Area"
  Require           valid-user
</Location>

DESCRIPTION

DBI authentication.

METHODS

  • new

    This method takes a hash of parameters. The following options are valid:

    • dsn

      Database Source Name. Required.

      dsn => 'dbi:SQLite:dbname=database.db'
      dsn => 'dbi:mysql:database=database;host=localhost;'
    • statement

      SQL statement. The statement must take a single string argument (username) and return a single value (password). Required.

      statement => 'SELECT password FROM users WHERE username = ?'
    • username

      Database username.

      username => 'username'
    • password

      Database password.

      password => 'secret'
    • log

      Any object that supports debug, info, error and warn.

      log => Log::Log4perl->get_logger('Authen::Simple::DBI')
  • authenticate( $username, $password )

    Returns true on success and false on failure.

SEE ALSO

Authen::Simple.

Authen::Simple::Password.

DBI.

AUTHOR

Christian Hansen ch@ngmedia.com

COPYRIGHT

This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.