NAME
Web::Authenticate::User::Storage::Handler::SQL - Implementation of Web::Authenticate::User::Storage::Handler::Role that can be used with MySQL or SQLite.
VERSION
version 0.010
DESCRIPTION
This Web::Authenticate::User::Storage::Handler::Role is meant to be used with a very specific table structure:
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(255) NOT NULL UNIQUE,
password TEXT NOT NULL
);
Other columns can exists, and the names of the table and column can change. But at least these columns must exist in order for this storage handler to work properly. Also, the primary key does not have to be an integer, and could even be the username.
METHODS
users_table
Sets the name of the users table that will be used when querying the database. Default is 'users'.
id_field
Sets the name of the id field that will be used when querying the database. Default is 'id'.
username_field
Sets the name of the username field that will be used when querying the database. Default is 'username'.
password_field
Sets the name of the password field that will be used when querying the database. Default is 'password'.
digest
Sets the Web::Authenticate::Digest::Role that is used. Default is Web::Authenticate::Digest.
dbix_raw
Sets the DBIx::Raw object that will be used to query the database. This is required with no default.
columns
The columns to select. At a minimum, "id_field" and "password_field" will always be selected.
$user_storage_handler->columns([qw/name age/]);
Default is an empty array ref.
load_user
Accepts the username and password for a user, and returns a Web::Authenticate::User if the password is correct and the user exists. Otherwise, undef is returned. Any additional "columns" will be stored in "row" in Web::Authenticate::User. However, the password will be deleted from the row before it is stored.
my $user = $user_storage_handler->load_user($username, $password);
load_user_by_id
Loads a user by id.
my $user = $user_storage_handler->load_user_by_id($user_id);
store_user
Takes in username, password, and any additional values for columns in a hash and we create that user with their hashed password. Returns a Web::Authenticate::User with any values from "columns" stored in "row" in Web::Authenticate::User.
my $user_values => {
name => 'Fred',
age => 34,
insert_time => \'NOW()', # scalar ref for literal values. See DBIx::Raw
};
my $user = $user_storage_handler->store_user($username, $password, $user_vaules);
# if you need no extra user values in the row
my $user = $user_storage_handler->store_user($username, $password);
AUTHOR
Adam Hopkins <srchulo@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by Adam Hopkins.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.