NAME

Mojolicious::Plugin::Bcrypt - bcrypt your passwords!

VERSION

Version 0.04

SYNOPSIS

Provides a helper for crypting and validating passwords via bcrypt.

use Mojolicious::Plugin::Bcrypt;

sub startup {
    my $self = shift;
    $self->plugin('bcrypt', { cost => 4 });
}

...

Optional parameter cost is a non-negative integer controlling the cost of the hash function. The number of operations is proportional to 2^cost. The current default value is 6.

HELPERS

bcrypt

Crypts a password via the bcrypt algorithm.

$self->bcrypt( $password, $settings );

$settings is an optional string which encodes the algorithm parameters, as described in Crypt::Eksblowfish::Bcrypt.

sub signup {
    my $self = shift;
    my $crypted_pass = $self->bcrypt( $self->param('password') );
    ...
}

bcrypt_validate

Validates a password against a crypted copy (for example from your database).

sub login {
    my $self = shift;
    my $entered_pass = $self->param('password');
    my $crypted_pass = $self->get_password_from_db();
    if ( $self->bcrypt_validate( $entered_pass, $crypted_pass ) ) {

        # Authenticated
        ...;
    }
    else {

        # Wrong password
        ...;
    }
}

DEVELOPMENT AND REPOSITORY

Clone it on GitHub at https://github.com/naturalist/Mojolicious--Plugin--Bcrypt

SEE ALSO

Crypt::Eksblowfish::Bcrypt, Mojolicious, Mojolicious::Plugin

AUTHOR

Stefan G., <minimal at cpan.org>

LICENSE AND COPYRIGHT

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.